function _typeof(e) {
  return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (e) {
    return typeof e
  } : function (e) {
    return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
  })(e)
}! function (e, t) {
  "object" == ("undefined" == typeof module ? "undefined" : _typeof(module)) && "object" == _typeof(module.exports) ? module.exports = e.document ? t(e, !0) : function (e) {
    if (e.document) return t(e);
    throw new Error("jQuery requires a window with a document")
  } : t(e)
}("undefined" != typeof window ? window : void 0, function (h, F) {
  function O(e, t) {
    return t.toUpperCase()
  }
  var d = [],
    c = d.slice,
    B = d.concat,
    P = d.push,
    R = d.indexOf,
    n = {},
    W = n.toString,
    m = n.hasOwnProperty,
    g = {},
    e = "1.11.3",
    w = function e(t, n) {
      return new e.fn.init(t, n)
    },
    $ = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
    z = /^-ms-/,
    I = /-([\da-z])/gi;

  function X(e) {
    var t = "length" in e && e.length,
      n = w.type(e);
    return "function" !== n && !w.isWindow(e) && (!(1 !== e.nodeType || !t) || "array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
  }
  w.fn = w.prototype = {
    jquery: e,
    constructor: w,
    selector: "",
    length: 0,
    toArray: function () {
      return c.call(this)
    },
    get: function (e) {
      return null != e ? e < 0 ? this[e + this.length] : this[e] : c.call(this)
    },
    pushStack: function (e) {
      e = w.merge(this.constructor(), e);
      return e.prevObject = this, e.context = this.context, e
    },
    each: function (e, t) {
      return w.each(this, e, t)
    },
    map: function (n) {
      return this.pushStack(w.map(this, function (e, t) {
        return n.call(e, t, e)
      }))
    },
    slice: function () {
      return this.pushStack(c.apply(this, arguments))
    },
    first: function () {
      return this.eq(0)
    },
    last: function () {
      return this.eq(-1)
    },
    eq: function (e) {
      var t = this.length,
        e = +e + (e < 0 ? t : 0);
      return this.pushStack(0 <= e && e < t ? [this[e]] : [])
    },
    end: function () {
      return this.prevObject || this.constructor(null)
    },
    push: P,
    sort: d.sort,
    splice: d.splice
  }, w.extend = w.fn.extend = function () {
    var e, t, n, r, i, o = arguments[0] || {},
      a = 1,
      s = arguments.length,
      l = !1;
    for ("boolean" == typeof o && (l = o, o = arguments[a] || {}, a++), "object" == _typeof(o) || w.isFunction(o) || (o = {}), a === s && (o = this, a--); a < s; a++)
      if (null != (r = arguments[a]))
        for (n in r) i = o[n], t = r[n], o !== t && (l && t && (w.isPlainObject(t) || (e = w.isArray(t))) ? (i = e ? (e = !1, i && w.isArray(i) ? i : []) : i && w.isPlainObject(i) ? i : {}, o[n] = w.extend(l, i, t)) : void 0 !== t && (o[n] = t));
    return o
  }, w.extend({
    expando: "jQuery" + (e + Math.random()).replace(/\D/g, ""),
    isReady: !0,
    error: function (e) {
      throw new Error(e)
    },
    noop: function () {},
    isFunction: function (e) {
      return "function" === w.type(e)
    },
    isArray: Array.isArray || function (e) {
      return "array" === w.type(e)
    },
    isWindow: function (e) {
      return null != e && e == e.window
    },
    isNumeric: function (e) {
      return !w.isArray(e) && 0 <= e - parseFloat(e) + 1
    },
    isEmptyObject: function (e) {
      for (var t in e) return !1;
      return !0
    },
    isPlainObject: function (e) {
      if (!e || "object" !== w.type(e) || e.nodeType || w.isWindow(e)) return !1;
      try {
        if (e.constructor && !m.call(e, "constructor") && !m.call(e.constructor.prototype, "isPrototypeOf")) return !1
      } catch (e) {
        return !1
      }
      if (g.ownLast)
        for (var t in e) return m.call(e, t);
      for (t in e);
      return void 0 === t || m.call(e, t)
    },
    type: function (e) {
      return null == e ? e + "" : "object" == _typeof(e) || "function" == typeof e ? n[W.call(e)] || "object" : _typeof(e)
    },
    globalEval: function (e) {
      e && w.trim(e) && (h.execScript || function (e) {
        h.eval.call(h, e)
      })(e)
    },
    camelCase: function (e) {
      return e.replace(z, "ms-").replace(I, O)
    },
    nodeName: function (e, t) {
      return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
    },
    each: function (e, t, n) {
      var r, i = 0,
        o = e.length,
        a = X(e);
      if (n) {
        if (a)
          for (; i < o && !1 !== (r = t.apply(e[i], n)); i++);
        else
          for (i in e)
            if (r = t.apply(e[i], n), !1 === r) break
      } else if (a)
        for (; i < o && !1 !== (r = t.call(e[i], i, e[i])); i++);
      else
        for (i in e)
          if (r = t.call(e[i], i, e[i]), !1 === r) break;
      return e
    },
    trim: function (e) {
      return null == e ? "" : (e + "").replace($, "")
    },
    makeArray: function (e, t) {
      t = t || [];
      return null != e && (X(Object(e)) ? w.merge(t, "string" == typeof e ? [e] : e) : P.call(t, e)), t
    },
    inArray: function (e, t, n) {
      var r;
      if (t) {
        if (R) return R.call(t, e, n);
        for (r = t.length, n = n ? n < 0 ? Math.max(0, r + n) : n : 0; n < r; n++)
          if (n in t && t[n] === e) return n
      }
      return -1
    },
    merge: function (e, t) {
      for (var n = +t.length, r = 0, i = e.length; r < n;) e[i++] = t[r++];
      if (n != n)
        for (; void 0 !== t[r];) e[i++] = t[r++];
      return e.length = i, e
    },
    grep: function (e, t, n) {
      for (var r = [], i = 0, o = e.length, a = !n; i < o; i++) !t(e[i], i) != a && r.push(e[i]);
      return r
    },
    map: function (e, t, n) {
      var r, i = 0,
        o = e.length,
        a = [];
      if (X(e))
        for (; i < o; i++) null != (r = t(e[i], i, n)) && a.push(r);
      else
        for (i in e) r = t(e[i], i, n), null != r && a.push(r);
      return B.apply([], a)
    },
    guid: 1,
    proxy: function (e, t) {
      var n, r;
      return "string" == typeof t && (r = e[t], t = e, e = r), w.isFunction(e) ? (n = c.call(arguments, 2), (r = function () {
        return e.apply(t || this, n.concat(c.call(arguments)))
      }).guid = e.guid = e.guid || w.guid++, r) : void 0
    },
    now: function () {
      return +new Date
    },
    support: g
  }), w.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (e, t) {
    n["[object " + t + "]"] = t.toLowerCase()
  });
  var e = function (n) {
      function d(e, t, n) {
        var r = "0x" + t - 65536;
        return r != r || n ? t : r < 0 ? String.fromCharCode(65536 + r) : String.fromCharCode(r >> 10 | 55296, 1023 & r | 56320)
      }

      function F() {
        h()
      }
      var e, f, x, o, O, p, B, P, w, u, c, h, T, t, m, g, r, i, y, b = "sizzle" + +new Date,
        v = n.document,
        C = 0,
        R = 0,
        W = ce(),
        $ = ce(),
        z = ce(),
        I = function (e, t) {
          return e === t && (c = !0), 0
        },
        X = {}.hasOwnProperty,
        a = [],
        U = a.pop,
        V = a.push,
        N = a.push,
        J = a.slice,
        E = function (e, t) {
          for (var n = 0, r = e.length; n < r; n++)
            if (e[n] === t) return n;
          return -1
        },
        Y = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
        s = "[\\x20\\t\\r\\n\\f]",
        l = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
        G = l.replace("w", "w#"),
        Q = "\\[" + s + "*(" + l + ")(?:" + s + "*([*^$|!~]?=)" + s + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + G + "))|)" + s + "*\\]",
        K = ":(" + l + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + Q + ")*)|.*)\\)|)",
        Z = new RegExp(s + "+", "g"),
        k = new RegExp("^" + s + "+|((?:^|[^\\\\])(?:\\\\.)*)" + s + "+$", "g"),
        ee = new RegExp("^" + s + "*," + s + "*"),
        te = new RegExp("^" + s + "*([>+~]|" + s + ")" + s + "*"),
        ne = new RegExp("=" + s + "*([^\\]'\"]*?)" + s + "*\\]", "g"),
        re = new RegExp(K),
        ie = new RegExp("^" + G + "$"),
        S = {
          ID: new RegExp("^#(" + l + ")"),
          CLASS: new RegExp("^\\.(" + l + ")"),
          TAG: new RegExp("^(" + l.replace("w", "w*") + ")"),
          ATTR: new RegExp("^" + Q),
          PSEUDO: new RegExp("^" + K),
          CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + s + "*(even|odd|(([+-]|)(\\d*)n|)" + s + "*(?:([+-]|)" + s + "*(\\d+)|))" + s + "*\\)|)", "i"),
          bool: new RegExp("^(?:" + Y + ")$", "i"),
          needsContext: new RegExp("^" + s + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + s + "*((?:-\\d)?\\d*)" + s + "*\\)|)(?=[^-]|$)", "i")
        },
        oe = /^(?:input|select|textarea|button)$/i,
        ae = /^h\d$/i,
        A = /^[^{]+\{\s*\[native \w/,
        se = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
        le = /[+~]/,
        ue = /'|\\/g,
        D = new RegExp("\\\\([\\da-f]{1,6}" + s + "?|(" + s + ")|.)", "ig");
      try {
        N.apply(a = J.call(v.childNodes), v.childNodes), a[v.childNodes.length].nodeType
      } catch (e) {
        N = {
          apply: a.length ? function (e, t) {
            V.apply(e, J.call(t))
          } : function (e, t) {
            for (var n = e.length, r = 0; e[n++] = t[r++];);
            e.length = n - 1
          }
        }
      }

      function j(e, t, n, r) {
        var i, o, a, s, l, u, c;
        if ((t ? t.ownerDocument || t : v) !== T && h(t), n = n || [], i = (t = t || T).nodeType, "string" != typeof e || !e || 1 !== i && 9 !== i && 11 !== i) return n;
        if (!r && m) {
          if (11 !== i && (u = se.exec(e)))
            if (c = u[1]) {
              if (9 === i) {
                if (!(s = t.getElementById(c)) || !s.parentNode) return n;
                if (s.id === c) return n.push(s), n
              } else if (t.ownerDocument && (s = t.ownerDocument.getElementById(c)) && y(t, s) && s.id === c) return n.push(s), n
            } else {
              if (u[2]) return N.apply(n, t.getElementsByTagName(e)), n;
              if ((c = u[3]) && f.getElementsByClassName) return N.apply(n, t.getElementsByClassName(c)), n
            } if (f.qsa && (!g || !g.test(e))) {
            if (l = s = b, u = t, c = 1 !== i && e, 1 === i && "object" !== t.nodeName.toLowerCase()) {
              for (a = p(e), (s = t.getAttribute("id")) ? l = s.replace(ue, "\\$&") : t.setAttribute("id", l), l = "[id='" + l + "'] ", o = a.length; o--;) a[o] = l + q(a[o]);
              u = le.test(e) && pe(t.parentNode) || t, c = a.join(",")
            }
            if (c) try {
              return N.apply(n, u.querySelectorAll(c)), n
            } catch (e) {} finally {
              s || t.removeAttribute("id")
            }
          }
        }
        return P(e.replace(k, "$1"), t, n, r)
      }

      function ce() {
        var n = [];

        function r(e, t) {
          return n.push(e + " ") > x.cacheLength && delete r[n.shift()], r[e + " "] = t
        }
        return r
      }

      function L(e) {
        return e[b] = !0, e
      }

      function _(e) {
        var t = T.createElement("div");
        try {
          return !!e(t)
        } catch (e) {
          return !1
        } finally {
          t.parentNode && t.parentNode.removeChild(t)
        }
      }

      function de(e, t) {
        for (var n = e.split("|"), r = e.length; r--;) x.attrHandle[n[r]] = t
      }

      function fe(e, t) {
        var n = t && e,
          r = n && 1 === e.nodeType && 1 === t.nodeType && (~t.sourceIndex || 1 << 31) - (~e.sourceIndex || 1 << 31);
        if (r) return r;
        if (n)
          for (; n = n.nextSibling;)
            if (n === t) return -1;
        return e ? 1 : -1
      }

      function H(a) {
        return L(function (o) {
          return o = +o, L(function (e, t) {
            for (var n, r = a([], e.length, o), i = r.length; i--;) e[n = r[i]] && (e[n] = !(t[n] = e[n]))
          })
        })
      }

      function pe(e) {
        return e && void 0 !== e.getElementsByTagName && e
      }
      for (e in f = j.support = {}, O = j.isXML = function (e) {
          e = e && (e.ownerDocument || e).documentElement;
          return !!e && "HTML" !== e.nodeName
        }, h = j.setDocument = function (e) {
          var l = e ? e.ownerDocument || e : v;
          return l !== T && 9 === l.nodeType && l.documentElement ? (t = (T = l).documentElement, (e = l.defaultView) && e !== e.top && (e.addEventListener ? e.addEventListener("unload", F, !1) : e.attachEvent && e.attachEvent("onunload", F)), m = !O(l), f.attributes = _(function (e) {
            return e.className = "i", !e.getAttribute("className")
          }), f.getElementsByTagName = _(function (e) {
            return e.appendChild(l.createComment("")), !e.getElementsByTagName("*").length
          }), f.getElementsByClassName = A.test(l.getElementsByClassName), f.getById = _(function (e) {
            return t.appendChild(e).id = b, !l.getElementsByName || !l.getElementsByName(b).length
          }), f.getById ? (x.find.ID = function (e, t) {
            if (void 0 !== t.getElementById && m) return (t = t.getElementById(e)) && t.parentNode ? [t] : []
          }, x.filter.ID = function (e) {
            var t = e.replace(D, d);
            return function (e) {
              return e.getAttribute("id") === t
            }
          }) : (delete x.find.ID, x.filter.ID = function (e) {
            var t = e.replace(D, d);
            return function (e) {
              e = void 0 !== e.getAttributeNode && e.getAttributeNode("id");
              return e && e.value === t
            }
          }), x.find.TAG = f.getElementsByTagName ? function (e, t) {
            return void 0 !== t.getElementsByTagName ? t.getElementsByTagName(e) : f.qsa ? t.querySelectorAll(e) : void 0
          } : function (e, t) {
            var n, r = [],
              i = 0,
              o = t.getElementsByTagName(e);
            if ("*" !== e) return o;
            for (; n = o[i++];) 1 === n.nodeType && r.push(n);
            return r
          }, x.find.CLASS = f.getElementsByClassName && function (e, t) {
            return m ? t.getElementsByClassName(e) : void 0
          }, r = [], g = [], (f.qsa = A.test(l.querySelectorAll)) && (_(function (e) {
            t.appendChild(e).innerHTML = "<a id='" + b + "'></a><select id='" + b + "-\f]' msallowcapture=''><option selected=''></option></select>", e.querySelectorAll("[msallowcapture^='']").length && g.push("[*^$]=" + s + "*(?:''|\"\")"), e.querySelectorAll("[selected]").length || g.push("\\[" + s + "*(?:value|" + Y + ")"), e.querySelectorAll("[id~=" + b + "-]").length || g.push("~="), e.querySelectorAll(":checked").length || g.push(":checked"), e.querySelectorAll("a#" + b + "+*").length || g.push(".#.+[+~]")
          }), _(function (e) {
            var t = l.createElement("input");
            t.setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), e.querySelectorAll("[name=d]").length && g.push("name" + s + "*[*^$|!~]?="), e.querySelectorAll(":enabled").length || g.push(":enabled", ":disabled"), e.querySelectorAll("*,:x"), g.push(",.*:")
          })), (f.matchesSelector = A.test(i = t.matches || t.webkitMatchesSelector || t.mozMatchesSelector || t.oMatchesSelector || t.msMatchesSelector)) && _(function (e) {
            f.disconnectedMatch = i.call(e, "div"), i.call(e, "[s!='']:x"), r.push("!=", K)
          }), g = g.length && new RegExp(g.join("|")), r = r.length && new RegExp(r.join("|")), e = A.test(t.compareDocumentPosition), y = e || A.test(t.contains) ? function (e, t) {
            var n = 9 === e.nodeType ? e.documentElement : e,
              t = t && t.parentNode;
            return e === t || !(!t || 1 !== t.nodeType || !(n.contains ? n.contains(t) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(t)))
          } : function (e, t) {
            if (t)
              for (; t = t.parentNode;)
                if (t === e) return !0;
            return !1
          }, I = e ? function (e, t) {
            var n;
            return e === t ? (c = !0, 0) : (n = !e.compareDocumentPosition - !t.compareDocumentPosition) || (1 & (n = (e.ownerDocument || e) === (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !f.sortDetached && t.compareDocumentPosition(e) === n ? e === l || e.ownerDocument === v && y(v, e) ? -1 : t === l || t.ownerDocument === v && y(v, t) ? 1 : u ? E(u, e) - E(u, t) : 0 : 4 & n ? -1 : 1)
          } : function (e, t) {
            if (e === t) return c = !0, 0;
            var n, r = 0,
              i = e.parentNode,
              o = t.parentNode,
              a = [e],
              s = [t];
            if (!i || !o) return e === l ? -1 : t === l ? 1 : i ? -1 : o ? 1 : u ? E(u, e) - E(u, t) : 0;
            if (i === o) return fe(e, t);
            for (n = e; n = n.parentNode;) a.unshift(n);
            for (n = t; n = n.parentNode;) s.unshift(n);
            for (; a[r] === s[r];) r++;
            return r ? fe(a[r], s[r]) : a[r] === v ? -1 : s[r] === v ? 1 : 0
          }, l) : T
        }, j.matches = function (e, t) {
          return j(e, null, null, t)
        }, j.matchesSelector = function (e, t) {
          if ((e.ownerDocument || e) !== T && h(e), t = t.replace(ne, "='$1']"), !(!f.matchesSelector || !m || r && r.test(t) || g && g.test(t))) try {
            var n = i.call(e, t);
            if (n || f.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
          } catch (e) {}
          return 0 < j(t, T, null, [e]).length
        }, j.contains = function (e, t) {
          return (e.ownerDocument || e) !== T && h(e), y(e, t)
        }, j.attr = function (e, t) {
          (e.ownerDocument || e) !== T && h(e);
          var n = x.attrHandle[t.toLowerCase()],
            n = n && X.call(x.attrHandle, t.toLowerCase()) ? n(e, t, !m) : void 0;
          return void 0 !== n ? n : f.attributes || !m ? e.getAttribute(t) : (n = e.getAttributeNode(t)) && n.specified ? n.value : null
        }, j.error = function (e) {
          throw new Error("Syntax error, unrecognized expression: " + e)
        }, j.uniqueSort = function (e) {
          var t, n = [],
            r = 0,
            i = 0;
          if (c = !f.detectDuplicates, u = !f.sortStable && e.slice(0), e.sort(I), c) {
            for (; t = e[i++];) t === e[i] && (r = n.push(i));
            for (; r--;) e.splice(n[r], 1)
          }
          return u = null, e
        }, o = j.getText = function (e) {
          var t, n = "",
            r = 0,
            i = e.nodeType;
          if (i) {
            if (1 === i || 9 === i || 11 === i) {
              if ("string" == typeof e.textContent) return e.textContent;
              for (e = e.firstChild; e; e = e.nextSibling) n += o(e)
            } else if (3 === i || 4 === i) return e.nodeValue
          } else
            for (; t = e[r++];) n += o(t);
          return n
        }, (x = j.selectors = {
          cacheLength: 50,
          createPseudo: L,
          match: S,
          attrHandle: {},
          find: {},
          relative: {
            ">": {
              dir: "parentNode",
              first: !0
            },
            " ": {
              dir: "parentNode"
            },
            "+": {
              dir: "previousSibling",
              first: !0
            },
            "~": {
              dir: "previousSibling"
            }
          },
          preFilter: {
            ATTR: function (e) {
              return e[1] = e[1].replace(D, d), e[3] = (e[3] || e[4] || e[5] || "").replace(D, d), "~=" === e[2] && (e[3] = " " + e[3] + " "), e.slice(0, 4)
            },
            CHILD: function (e) {
              return e[1] = e[1].toLowerCase(), "nth" === e[1].slice(0, 3) ? (e[3] || j.error(e[0]), e[4] = +(e[4] ? e[5] + (e[6] || 1) : 2 * ("even" === e[3] || "odd" === e[3])), e[5] = +(e[7] + e[8] || "odd" === e[3])) : e[3] && j.error(e[0]), e
            },
            PSEUDO: function (e) {
              var t, n = !e[6] && e[2];
              return S.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && re.test(n) && (t = (t = p(n, !0)) && n.indexOf(")", n.length - t) - n.length) && (e[0] = e[0].slice(0, t), e[2] = n.slice(0, t)), e.slice(0, 3))
            }
          },
          filter: {
            TAG: function (e) {
              var t = e.replace(D, d).toLowerCase();
              return "*" === e ? function () {
                return !0
              } : function (e) {
                return e.nodeName && e.nodeName.toLowerCase() === t
              }
            },
            CLASS: function (e) {
              var t = W[e + " "];
              return t || (t = new RegExp("(^|" + s + ")" + e + "(" + s + "|$)")) && W(e, function (e) {
                return t.test("string" == typeof e.className && e.className || void 0 !== e.getAttribute && e.getAttribute("class") || "")
              })
            },
            ATTR: function (t, n, r) {
              return function (e) {
                e = j.attr(e, t);
                return null == e ? "!=" === n : !n || (e += "", "=" === n ? e === r : "!=" === n ? e !== r : "^=" === n ? r && 0 === e.indexOf(r) : "*=" === n ? r && -1 < e.indexOf(r) : "$=" === n ? r && e.slice(-r.length) === r : "~=" === n ? -1 < (" " + e.replace(Z, " ") + " ").indexOf(r) : "|=" === n && (e === r || e.slice(0, r.length + 1) === r + "-"))
              }
            },
            CHILD: function (p, e, t, h, m) {
              var g = "nth" !== p.slice(0, 3),
                y = "last" !== p.slice(-4),
                v = "of-type" === e;
              return 1 === h && 0 === m ? function (e) {
                return !!e.parentNode
              } : function (e, t, n) {
                var r, i, o, a, s, l, u = g != y ? "nextSibling" : "previousSibling",
                  c = e.parentNode,
                  d = v && e.nodeName.toLowerCase(),
                  f = !n && !v;
                if (c) {
                  if (g) {
                    for (; u;) {
                      for (o = e; o = o[u];)
                        if (v ? o.nodeName.toLowerCase() === d : 1 === o.nodeType) return !1;
                      l = u = "only" === p && !l && "nextSibling"
                    }
                    return !0
                  }
                  if (l = [y ? c.firstChild : c.lastChild], y && f) {
                    for (s = (r = (i = c[b] || (c[b] = {}))[p] || [])[0] === C && r[1], a = r[0] === C && r[2], o = s && c.childNodes[s]; o = ++s && o && o[u] || (a = s = 0, l.pop());)
                      if (1 === o.nodeType && ++a && o === e) {
                        i[p] = [C, s, a];
                        break
                      }
                  } else if (f && (r = (e[b] || (e[b] = {}))[p]) && r[0] === C) a = r[1];
                  else
                    for (;
                      (o = ++s && o && o[u] || (a = s = 0, l.pop())) && ((v ? o.nodeName.toLowerCase() !== d : 1 !== o.nodeType) || !++a || (f && ((o[b] || (o[b] = {}))[p] = [C, a]), o !== e)););
                  return (a -= m) === h || a % h == 0 && 0 <= a / h
                }
              }
            },
            PSEUDO: function (e, o) {
              var t, a = x.pseudos[e] || x.setFilters[e.toLowerCase()] || j.error("unsupported pseudo: " + e);
              return a[b] ? a(o) : 1 < a.length ? (t = [e, e, "", o], x.setFilters.hasOwnProperty(e.toLowerCase()) ? L(function (e, t) {
                for (var n, r = a(e, o), i = r.length; i--;) e[n = E(e, r[i])] = !(t[n] = r[i])
              }) : function (e) {
                return a(e, 0, t)
              }) : a
            }
          },
          pseudos: {
            not: L(function (e) {
              var r = [],
                i = [],
                s = B(e.replace(k, "$1"));
              return s[b] ? L(function (e, t, n, r) {
                for (var i, o = s(e, null, r, []), a = e.length; a--;)(i = o[a]) && (e[a] = !(t[a] = i))
              }) : function (e, t, n) {
                return r[0] = e, s(r, null, n, i), r[0] = null, !i.pop()
              }
            }),
            has: L(function (t) {
              return function (e) {
                return 0 < j(t, e).length
              }
            }),
            contains: L(function (t) {
              return t = t.replace(D, d),
                function (e) {
                  return -1 < (e.textContent || e.innerText || o(e)).indexOf(t)
                }
            }),
            lang: L(function (n) {
              return ie.test(n || "") || j.error("unsupported lang: " + n), n = n.replace(D, d).toLowerCase(),
                function (e) {
                  var t;
                  do {
                    if (t = m ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang")) return (t = t.toLowerCase()) === n || 0 === t.indexOf(n + "-")
                  } while ((e = e.parentNode) && 1 === e.nodeType);
                  return !1
                }
            }),
            target: function (e) {
              var t = n.location && n.location.hash;
              return t && t.slice(1) === e.id
            },
            root: function (e) {
              return e === t
            },
            focus: function (e) {
              return e === T.activeElement && (!T.hasFocus || T.hasFocus()) && !!(e.type || e.href || ~e.tabIndex)
            },
            enabled: function (e) {
              return !1 === e.disabled
            },
            disabled: function (e) {
              return !0 === e.disabled
            },
            checked: function (e) {
              var t = e.nodeName.toLowerCase();
              return "input" === t && !!e.checked || "option" === t && !!e.selected
            },
            selected: function (e) {
              return e.parentNode && e.parentNode.selectedIndex, !0 === e.selected
            },
            empty: function (e) {
              for (e = e.firstChild; e; e = e.nextSibling)
                if (e.nodeType < 6) return !1;
              return !0
            },
            parent: function (e) {
              return !x.pseudos.empty(e)
            },
            header: function (e) {
              return ae.test(e.nodeName)
            },
            input: function (e) {
              return oe.test(e.nodeName)
            },
            button: function (e) {
              var t = e.nodeName.toLowerCase();
              return "input" === t && "button" === e.type || "button" === t
            },
            text: function (e) {
              return "input" === e.nodeName.toLowerCase() && "text" === e.type && (null == (e = e.getAttribute("type")) || "text" === e.toLowerCase())
            },
            first: H(function () {
              return [0]
            }),
            last: H(function (e, t) {
              return [t - 1]
            }),
            eq: H(function (e, t, n) {
              return [n < 0 ? n + t : n]
            }),
            even: H(function (e, t) {
              for (var n = 0; n < t; n += 2) e.push(n);
              return e
            }),
            odd: H(function (e, t) {
              for (var n = 1; n < t; n += 2) e.push(n);
              return e
            }),
            lt: H(function (e, t, n) {
              for (var r = n < 0 ? n + t : n; 0 <= --r;) e.push(r);
              return e
            }),
            gt: H(function (e, t, n) {
              for (var r = n < 0 ? n + t : n; ++r < t;) e.push(r);
              return e
            })
          }
        }).pseudos.nth = x.pseudos.eq, {
          radio: !0,
          checkbox: !0,
          file: !0,
          password: !0,
          image: !0
        }) x.pseudos[e] = function (t) {
        return function (e) {
          return "input" === e.nodeName.toLowerCase() && e.type === t
        }
      }(e);
      for (e in {
          submit: !0,
          reset: !0
        }) x.pseudos[e] = function (n) {
        return function (e) {
          var t = e.nodeName.toLowerCase();
          return ("input" === t || "button" === t) && e.type === n
        }
      }(e);

      function he() {}

      function q(e) {
        for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
        return r
      }

      function me(a, e, t) {
        var s = e.dir,
          l = t && "parentNode" === s,
          u = R++;
        return e.first ? function (e, t, n) {
          for (; e = e[s];)
            if (1 === e.nodeType || l) return a(e, t, n)
        } : function (e, t, n) {
          var r, i, o = [C, u];
          if (n) {
            for (; e = e[s];)
              if ((1 === e.nodeType || l) && a(e, t, n)) return !0
          } else
            for (; e = e[s];)
              if (1 === e.nodeType || l) {
                if ((r = (i = e[b] || (e[b] = {}))[s]) && r[0] === C && r[1] === u) return o[2] = r[2];
                if ((i[s] = o)[2] = a(e, t, n)) return !0
              }
        }
      }

      function ge(i) {
        return 1 < i.length ? function (e, t, n) {
          for (var r = i.length; r--;)
            if (!i[r](e, t, n)) return !1;
          return !0
        } : i[0]
      }

      function M(e, t, n, r, i) {
        for (var o, a = [], s = 0, l = e.length, u = null != t; s < l; s++)(o = e[s]) && (!n || n(o, r, i)) && (a.push(o), u) && t.push(s);
        return a
      }

      function ye(p, h, m, g, y, e) {
        return g && !g[b] && (g = ye(g)), y && !y[b] && (y = ye(y, e)), L(function (e, t, n, r) {
          var i, o, a, s = [],
            l = [],
            u = t.length,
            c = e || function (e, t, n) {
              for (var r = 0, i = t.length; r < i; r++) j(e, t[r], n);
              return n
            }(h || "*", n.nodeType ? [n] : n, []),
            d = !p || !e && h ? c : M(c, s, p, n, r),
            f = m ? y || (e ? p : u || g) ? [] : t : d;
          if (m && m(d, f, n, r), g)
            for (i = M(f, l), g(i, [], n, r), o = i.length; o--;)(a = i[o]) && (f[l[o]] = !(d[l[o]] = a));
          if (e) {
            if (y || p) {
              if (y) {
                for (i = [], o = f.length; o--;)(a = f[o]) && i.push(d[o] = a);
                y(null, f = [], i, r)
              }
              for (o = f.length; o--;)(a = f[o]) && -1 < (i = y ? E(e, a) : s[o]) && (e[i] = !(t[i] = a))
            }
          } else f = M(f === t ? f.splice(u, f.length) : f), y ? y(null, t, f, r) : N.apply(t, f)
        })
      }

      function ve(g, y) {
        function e(e, t, n, r, i) {
          var o, a, s, l = 0,
            u = "0",
            c = e && [],
            d = [],
            f = w,
            p = e || b && x.find.TAG("*", i),
            h = C += null == f ? 1 : Math.random() || .1,
            m = p.length;
          for (i && (w = t !== T && t); u !== m && null != (o = p[u]); u++) {
            if (b && o) {
              for (a = 0; s = g[a++];)
                if (s(o, t, n)) {
                  r.push(o);
                  break
                } i && (C = h)
            }
            v && ((o = !s && o) && l--, e) && c.push(o)
          }
          if (l += u, v && u !== l) {
            for (a = 0; s = y[a++];) s(c, d, t, n);
            if (e) {
              if (0 < l)
                for (; u--;) c[u] || d[u] || (d[u] = U.call(r));
              d = M(d)
            }
            N.apply(r, d), i && !e && 0 < d.length && 1 < l + y.length && j.uniqueSort(r)
          }
          return i && (C = h, w = f), c
        }
        var v = 0 < y.length,
          b = 0 < g.length;
        return v ? L(e) : e
      }
      return he.prototype = x.filters = x.pseudos, x.setFilters = new he, p = j.tokenize = function (e, t) {
        var n, r, i, o, a, s, l, u = $[e + " "];
        if (u) return t ? 0 : u.slice(0);
        for (a = e, s = [], l = x.preFilter; a;) {
          for (o in n && !(r = ee.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = te.exec(a)) && (n = r.shift(), i.push({
              value: n,
              type: r[0].replace(k, " ")
            }), a = a.slice(n.length)), x.filter) !(r = S[o].exec(a)) || l[o] && !(r = l[o](r)) || (n = r.shift(), i.push({
            value: n,
            type: o,
            matches: r
          }), a = a.slice(n.length));
          if (!n) break
        }
        return t ? a.length : a ? j.error(e) : $(e, s).slice(0)
      }, B = j.compile = function (e, t) {
        var n, r = [],
          i = [],
          o = z[e + " "];
        if (!o) {
          for (n = (t = t || p(e)).length; n--;)((o = function e(t) {
            for (var r, n, i, o = t.length, a = x.relative[t[0].type], s = a || x.relative[" "], l = a ? 1 : 0, u = me(function (e) {
                return e === r
              }, s, !0), c = me(function (e) {
                return -1 < E(r, e)
              }, s, !0), d = [function (e, t, n) {
                return e = !a && (n || t !== w) || ((r = t).nodeType ? u : c)(e, t, n), r = null, e
              }]; l < o; l++)
              if (n = x.relative[t[l].type]) d = [me(ge(d), n)];
              else {
                if ((n = x.filter[t[l].type].apply(null, t[l].matches))[b]) {
                  for (i = ++l; i < o && !x.relative[t[i].type]; i++);
                  return ye(1 < l && ge(d), 1 < l && q(t.slice(0, l - 1).concat({
                    value: " " === t[l - 2].type ? "*" : ""
                  })).replace(k, "$1"), n, l < i && e(t.slice(l, i)), i < o && e(t = t.slice(i)), i < o && q(t))
                }
                d.push(n)
              } return ge(d)
          }(t[n]))[b] ? r : i).push(o);
          (o = z(e, ve(i, r))).selector = e
        }
        return o
      }, P = j.select = function (e, t, n, r) {
        var i, o, a, s, l, u = "function" == typeof e && e,
          c = !r && p(e = u.selector || e);
        if (n = n || [], 1 === c.length) {
          if (2 < (o = c[0] = c[0].slice(0)).length && "ID" === (a = o[0]).type && f.getById && 9 === t.nodeType && m && x.relative[o[1].type]) {
            if (!(t = (x.find.ID(a.matches[0].replace(D, d), t) || [])[0])) return n;
            u && (t = t.parentNode), e = e.slice(o.shift().value.length)
          }
          for (i = S.needsContext.test(e) ? 0 : o.length; i-- && (a = o[i], !x.relative[s = a.type]);)
            if ((l = x.find[s]) && (r = l(a.matches[0].replace(D, d), le.test(o[0].type) && pe(t.parentNode) || t))) {
              if (o.splice(i, 1), e = r.length && q(o)) break;
              return N.apply(n, r), n
            }
        }
        return (u || B(e, c))(r, t, !m, n, le.test(e) && pe(t.parentNode) || t), n
      }, f.sortStable = b.split("").sort(I).join("") === b, f.detectDuplicates = !!c, h(), f.sortDetached = _(function (e) {
        return 1 & e.compareDocumentPosition(T.createElement("div"))
      }), _(function (e) {
        return e.innerHTML = "<a href='#'></a>", "#" === e.firstChild.getAttribute("href")
      }) || de("type|href|height|width", function (e, t, n) {
        return n ? void 0 : e.getAttribute(t, "type" === t.toLowerCase() ? 1 : 2)
      }), f.attributes && _(function (e) {
        return e.innerHTML = "<input/>", e.firstChild.setAttribute("value", ""), "" === e.firstChild.getAttribute("value")
      }) || de("value", function (e, t, n) {
        return n || "input" !== e.nodeName.toLowerCase() ? void 0 : e.defaultValue
      }), _(function (e) {
        return null == e.getAttribute("disabled")
      }) || de(Y, function (e, t, n) {
        return n ? void 0 : !0 === e[t] ? t.toLowerCase() : (n = e.getAttributeNode(t)) && n.specified ? n.value : null
      }), j
    }(h),
    U = (w.find = e, w.expr = e.selectors, w.expr[":"] = w.expr.pseudos, w.unique = e.uniqueSort, w.text = e.getText, w.isXMLDoc = e.isXML, w.contains = e.contains, w.expr.match.needsContext),
    V = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
    J = /^.[^:#\[\.,]*$/;

  function Y(e, n, r) {
    if (w.isFunction(n)) return w.grep(e, function (e, t) {
      return !!n.call(e, t, e) !== r
    });
    if (n.nodeType) return w.grep(e, function (e) {
      return e === n !== r
    });
    if ("string" == typeof n) {
      if (J.test(n)) return w.filter(n, e, r);
      n = w.filter(n, e)
    }
    return w.grep(e, function (e) {
      return 0 <= w.inArray(e, n) !== r
    })
  }
  w.filter = function (e, t, n) {
    var r = t[0];
    return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? w.find.matchesSelector(r, e) ? [r] : [] : w.find.matches(e, w.grep(t, function (e) {
      return 1 === e.nodeType
    }))
  }, w.fn.extend({
    find: function (e) {
      var t, n = [],
        r = this,
        i = r.length;
      if ("string" != typeof e) return this.pushStack(w(e).filter(function () {
        for (t = 0; t < i; t++)
          if (w.contains(r[t], this)) return !0
      }));
      for (t = 0; t < i; t++) w.find(e, r[t], n);
      return (n = this.pushStack(1 < i ? w.unique(n) : n)).selector = this.selector ? this.selector + " " + e : e, n
    },
    filter: function (e) {
      return this.pushStack(Y(this, e || [], !1))
    },
    not: function (e) {
      return this.pushStack(Y(this, e || [], !0))
    },
    is: function (e) {
      return !!Y(this, "string" == typeof e && U.test(e) ? w(e) : e || [], !1).length
    }
  });
  var i, y = h.document,
    G = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
    Q = ((w.fn.init = function (e, t) {
      var n, r;
      if (e) {
        if ("string" != typeof e) return e.nodeType ? (this.context = this[0] = e, this.length = 1, this) : w.isFunction(e) ? void 0 !== i.ready ? i.ready(e) : e(w) : (void 0 !== e.selector && (this.selector = e.selector, this.context = e.context), w.makeArray(e, this));
        if (!(n = "<" === e.charAt(0) && ">" === e.charAt(e.length - 1) && 3 <= e.length ? [null, e, null] : G.exec(e)) || !n[1] && t) return (!t || t.jquery ? t || i : this.constructor(t)).find(e);
        if (n[1]) {
          if (t = t instanceof w ? t[0] : t, w.merge(this, w.parseHTML(n[1], t && t.nodeType ? t.ownerDocument || t : y, !0)), V.test(n[1]) && w.isPlainObject(t))
            for (n in t) w.isFunction(this[n]) ? this[n](t[n]) : this.attr(n, t[n])
        } else {
          if ((r = y.getElementById(n[2])) && r.parentNode) {
            if (r.id !== n[2]) return i.find(e);
            this.length = 1, this[0] = r
          }
          this.context = y, this.selector = e
        }
      }
      return this
    }).prototype = w.fn, i = w(y), /^(?:parents|prev(?:Until|All))/),
    K = {
      children: !0,
      contents: !0,
      next: !0,
      prev: !0
    };

  function Z(e, t) {
    for (;
      (e = e[t]) && 1 !== e.nodeType;);
    return e
  }
  w.extend({
    dir: function (e, t, n) {
      for (var r = [], i = e[t]; i && 9 !== i.nodeType && (void 0 === n || 1 !== i.nodeType || !w(i).is(n));) 1 === i.nodeType && r.push(i), i = i[t];
      return r
    },
    sibling: function (e, t) {
      for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
      return n
    }
  }), w.fn.extend({
    has: function (e) {
      var t, n = w(e, this),
        r = n.length;
      return this.filter(function () {
        for (t = 0; t < r; t++)
          if (w.contains(this, n[t])) return !0
      })
    },
    closest: function (e, t) {
      for (var n, r = 0, i = this.length, o = [], a = U.test(e) || "string" != typeof e ? w(e, t || this.context) : 0; r < i; r++)
        for (n = this[r]; n && n !== t; n = n.parentNode)
          if (n.nodeType < 11 && (a ? -1 < a.index(n) : 1 === n.nodeType && w.find.matchesSelector(n, e))) {
            o.push(n);
            break
          } return this.pushStack(1 < o.length ? w.unique(o) : o)
    },
    index: function (e) {
      return e ? "string" == typeof e ? w.inArray(this[0], w(e)) : w.inArray(e.jquery ? e[0] : e, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
    },
    add: function (e, t) {
      return this.pushStack(w.unique(w.merge(this.get(), w(e, t))))
    },
    addBack: function (e) {
      return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
    }
  }), w.each({
    parent: function (e) {
      e = e.parentNode;
      return e && 11 !== e.nodeType ? e : null
    },
    parents: function (e) {
      return w.dir(e, "parentNode")
    },
    parentsUntil: function (e, t, n) {
      return w.dir(e, "parentNode", n)
    },
    next: function (e) {
      return Z(e, "nextSibling")
    },
    prev: function (e) {
      return Z(e, "previousSibling")
    },
    nextAll: function (e) {
      return w.dir(e, "nextSibling")
    },
    prevAll: function (e) {
      return w.dir(e, "previousSibling")
    },
    nextUntil: function (e, t, n) {
      return w.dir(e, "nextSibling", n)
    },
    prevUntil: function (e, t, n) {
      return w.dir(e, "previousSibling", n)
    },
    siblings: function (e) {
      return w.sibling((e.parentNode || {}).firstChild, e)
    },
    children: function (e) {
      return w.sibling(e.firstChild)
    },
    contents: function (e) {
      return w.nodeName(e, "iframe") ? e.contentDocument || e.contentWindow.document : w.merge([], e.childNodes)
    }
  }, function (r, i) {
    w.fn[r] = function (e, t) {
      var n = w.map(this, i, e);
      return (t = "Until" !== r.slice(-5) ? e : t) && "string" == typeof t && (n = w.filter(t, n)), 1 < this.length && (K[r] || (n = w.unique(n)), Q.test(r)) && (n = n.reverse()), this.pushStack(n)
    }
  });
  var t, T = /\S+/g,
    ee = {};

  function te() {
    y.addEventListener ? (y.removeEventListener("DOMContentLoaded", r, !1), h.removeEventListener("load", r, !1)) : (y.detachEvent("onreadystatechange", r), h.detachEvent("onload", r))
  }

  function r() {
    !y.addEventListener && "load" !== event.type && "complete" !== y.readyState || (te(), w.ready())
  }
  w.Callbacks = function (i) {
    var e, n;
    i = "string" == typeof i ? ee[i] || (n = ee[e = i] = {}, w.each(e.match(T) || [], function (e, t) {
      n[t] = !0
    }), n) : w.extend({}, i);

    function r(e) {
      for (t = i.memory && e, a = !0, l = u || 0, u = 0, s = c.length, o = !0; c && l < s; l++)
        if (!1 === c[l].apply(e[0], e[1]) && i.stopOnFalse) {
          t = !1;
          break
        } o = !1, c && (d ? d.length && r(d.shift()) : t ? c = [] : f.disable())
    }
    var o, t, a, s, l, u, c = [],
      d = !i.once && [],
      f = {
        add: function () {
          var e;
          return c && (e = c.length, function r(e) {
            w.each(e, function (e, t) {
              var n = w.type(t);
              "function" === n ? i.unique && f.has(t) || c.push(t) : t && t.length && "string" !== n && r(t)
            })
          }(arguments), o ? s = c.length : t && (u = e, r(t))), this
        },
        remove: function () {
          return c && w.each(arguments, function (e, t) {
            for (var n; - 1 < (n = w.inArray(t, c, n));) c.splice(n, 1), o && (n <= s && s--, n <= l) && l--
          }), this
        },
        has: function (e) {
          return e ? -1 < w.inArray(e, c) : !(!c || !c.length)
        },
        empty: function () {
          return c = [], s = 0, this
        },
        disable: function () {
          return c = d = t = void 0, this
        },
        disabled: function () {
          return !c
        },
        lock: function () {
          return d = void 0, t || f.disable(), this
        },
        locked: function () {
          return !d
        },
        fireWith: function (e, t) {
          return !c || a && !d || (t = [e, (t = t || []).slice ? t.slice() : t], o ? d.push(t) : r(t)), this
        },
        fire: function () {
          return f.fireWith(this, arguments), this
        },
        fired: function () {
          return !!a
        }
      };
    return f
  }, w.extend({
    Deferred: function (e) {
      var o = [
          ["resolve", "done", w.Callbacks("once memory"), "resolved"],
          ["reject", "fail", w.Callbacks("once memory"), "rejected"],
          ["notify", "progress", w.Callbacks("memory")]
        ],
        i = "pending",
        a = {
          state: function () {
            return i
          },
          always: function () {
            return s.done(arguments).fail(arguments), this
          },
          then: function () {
            var i = arguments;
            return w.Deferred(function (r) {
              w.each(o, function (e, t) {
                var n = w.isFunction(i[e]) && i[e];
                s[t[1]](function () {
                  var e = n && n.apply(this, arguments);
                  e && w.isFunction(e.promise) ? e.promise().done(r.resolve).fail(r.reject).progress(r.notify) : r[t[0] + "With"](this === a ? r.promise() : this, n ? [e] : arguments)
                })
              }), i = null
            }).promise()
          },
          promise: function (e) {
            return null != e ? w.extend(e, a) : a
          }
        },
        s = {};
      return a.pipe = a.then, w.each(o, function (e, t) {
        var n = t[2],
          r = t[3];
        a[t[1]] = n.add, r && n.add(function () {
          i = r
        }, o[1 ^ e][2].disable, o[2][2].lock), s[t[0]] = function () {
          return s[t[0] + "With"](this === s ? a : this, arguments), this
        }, s[t[0] + "With"] = n.fireWith
      }), a.promise(s), e && e.call(s, s), s
    },
    when: function (e) {
      function t(t, n, r) {
        return function (e) {
          n[t] = this, r[t] = 1 < arguments.length ? c.call(arguments) : e, r === i ? u.notifyWith(n, r) : --l || u.resolveWith(n, r)
        }
      }
      var i, n, r, o = 0,
        a = c.call(arguments),
        s = a.length,
        l = 1 !== s || e && w.isFunction(e.promise) ? s : 0,
        u = 1 === l ? e : w.Deferred();
      if (1 < s)
        for (i = new Array(s), n = new Array(s), r = new Array(s); o < s; o++) a[o] && w.isFunction(a[o].promise) ? a[o].promise().done(t(o, r, a)).fail(u.reject).progress(t(o, n, i)) : --l;
      return l || u.resolveWith(r, a), u.promise()
    }
  }), w.fn.ready = function (e) {
    return w.ready.promise().done(e), this
  }, w.extend({
    isReady: !1,
    readyWait: 1,
    holdReady: function (e) {
      e ? w.readyWait++ : w.ready(!0)
    },
    ready: function (e) {
      if (!0 === e ? !--w.readyWait : !w.isReady) {
        if (!y.body) return setTimeout(w.ready);
        (w.isReady = !0) !== e && 0 < --w.readyWait || (t.resolveWith(y, [w]), w.fn.triggerHandler && (w(y).triggerHandler("ready"), w(y).off("ready")))
      }
    }
  }), w.ready.promise = function (e) {
    if (!t)
      if (t = w.Deferred(), "complete" === y.readyState) setTimeout(w.ready);
      else if (y.addEventListener) y.addEventListener("DOMContentLoaded", r, !1), h.addEventListener("load", r, !1);
    else {
      y.attachEvent("onreadystatechange", r), h.attachEvent("onload", r);
      var n = !1;
      try {
        n = null == h.frameElement && y.documentElement
      } catch (e) {}
      n && n.doScroll && ! function t() {
        if (!w.isReady) {
          try {
            n.doScroll("left")
          } catch (e) {
            return setTimeout(t, 50)
          }
          te(), w.ready()
        }
      }()
    }
    return t.promise(e)
  };
  var ne, v = "undefined";
  for (ne in w(g)) break;
  g.ownLast = "0" !== ne, g.inlineBlockNeedsLayout = !1, w(function () {
    var e, t, n = y.getElementsByTagName("body")[0];
    n && n.style && (e = y.createElement("div"), (t = y.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(t).appendChild(e), _typeof(e.style.zoom) !== v && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", g.inlineBlockNeedsLayout = e = 3 === e.offsetWidth, e) && (n.style.zoom = 1), n.removeChild(t))
  });
  e = y.createElement("div");
  if (null == g.deleteExpando) {
    g.deleteExpando = !0;
    try {
      delete e.test
    } catch (e) {
      g.deleteExpando = !1
    }
  }
  w.acceptData = function (e) {
    var t = w.noData[(e.nodeName + " ").toLowerCase()],
      n = +e.nodeType || 1;
    return (1 === n || 9 === n) && (!t || !0 !== t && e.getAttribute("classid") === t)
  };
  var re = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
    ie = /([A-Z])/g;

  function oe(e, t, n) {
    if (void 0 === n && 1 === e.nodeType) {
      var r = "data-" + t.replace(ie, "-$1").toLowerCase();
      if ("string" == typeof (n = e.getAttribute(r))) {
        try {
          n = "true" === n || "false" !== n && ("null" === n ? null : +n + "" === n ? +n : re.test(n) ? w.parseJSON(n) : n)
        } catch (e) {}
        w.data(e, t, n)
      } else n = void 0
    }
    return n
  }

  function ae(e) {
    for (var t in e)
      if (("data" !== t || !w.isEmptyObject(e[t])) && "toJSON" !== t) return;
    return 1
  }

  function se(e, t, n, r) {
    if (w.acceptData(e)) {
      var i, o = w.expando,
        a = e.nodeType,
        s = a ? w.cache : e,
        l = a ? e[o] : e[o] && o;
      if (l && s[l] && (r || s[l].data) || void 0 !== n || "string" != typeof t) return s[l = l || (a ? e[o] = d.pop() || w.guid++ : o)] || (s[l] = a ? {} : {
        toJSON: w.noop
      }), "object" != _typeof(t) && "function" != typeof t || (r ? s[l] = w.extend(s[l], t) : s[l].data = w.extend(s[l].data, t)), e = s[l], r || (e.data || (e.data = {}), e = e.data), void 0 !== n && (e[w.camelCase(t)] = n), "string" == typeof t ? null == (i = e[t]) && (i = e[w.camelCase(t)]) : i = e, i
    }
  }

  function le(e, t, n) {
    if (w.acceptData(e)) {
      var r, i, o = e.nodeType,
        a = o ? w.cache : e,
        s = o ? e[w.expando] : w.expando;
      if (a[s]) {
        if (t && (r = n ? a[s] : a[s].data)) {
          i = (t = w.isArray(t) ? t.concat(w.map(t, w.camelCase)) : t in r || (t = w.camelCase(t)) in r ? [t] : t.split(" ")).length;
          for (; i--;) delete r[t[i]];
          if (n ? !ae(r) : !w.isEmptyObject(r)) return
        }(n || (delete a[s].data, ae(a[s]))) && (o ? w.cleanData([e], !0) : g.deleteExpando || a != a.window ? delete a[s] : a[s] = null)
      }
    }
  }
  w.extend({
    cache: {},
    noData: {
      "applet ": !0,
      "embed ": !0,
      "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    },
    hasData: function (e) {
      return !!(e = e.nodeType ? w.cache[e[w.expando]] : e[w.expando]) && !ae(e)
    },
    data: function (e, t, n) {
      return se(e, t, n)
    },
    removeData: function (e, t) {
      return le(e, t)
    },
    _data: function (e, t, n) {
      return se(e, t, n, !0)
    },
    _removeData: function (e, t) {
      return le(e, t, !0)
    }
  }), w.fn.extend({
    data: function (e, t) {
      var n, r, i, o = this[0],
        a = o && o.attributes;
      if (void 0 !== e) return "object" == _typeof(e) ? this.each(function () {
        w.data(this, e)
      }) : 1 < arguments.length ? this.each(function () {
        w.data(this, e, t)
      }) : o ? oe(o, e, w.data(o, e)) : void 0;
      if (this.length && (i = w.data(o), 1 === o.nodeType) && !w._data(o, "parsedAttrs")) {
        for (n = a.length; n--;) a[n] && 0 === (r = a[n].name).indexOf("data-") && oe(o, r = w.camelCase(r.slice(5)), i[r]);
        w._data(o, "parsedAttrs", !0)
      }
      return i
    },
    removeData: function (e) {
      return this.each(function () {
        w.removeData(this, e)
      })
    }
  }), w.extend({
    queue: function (e, t, n) {
      var r;
      return e ? (r = w._data(e, t = (t || "fx") + "queue"), n && (!r || w.isArray(n) ? r = w._data(e, t, w.makeArray(n)) : r.push(n)), r || []) : void 0
    },
    dequeue: function (e, t) {
      t = t || "fx";
      var n = w.queue(e, t),
        r = n.length,
        i = n.shift(),
        o = w._queueHooks(e, t);
      "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function () {
        w.dequeue(e, t)
      }, o)), !r && o && o.empty.fire()
    },
    _queueHooks: function (e, t) {
      var n = t + "queueHooks";
      return w._data(e, n) || w._data(e, n, {
        empty: w.Callbacks("once memory").add(function () {
          w._removeData(e, t + "queue"), w._removeData(e, n)
        })
      })
    }
  }), w.fn.extend({
    queue: function (t, n) {
      var e = 2;
      return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? w.queue(this[0], t) : void 0 === n ? this : this.each(function () {
        var e = w.queue(this, t, n);
        w._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && w.dequeue(this, t)
      })
    },
    dequeue: function (e) {
      return this.each(function () {
        w.dequeue(this, e)
      })
    },
    clearQueue: function (e) {
      return this.queue(e || "fx", [])
    },
    promise: function (e, t) {
      function n() {
        --i || o.resolveWith(a, [a])
      }
      var r, i = 1,
        o = w.Deferred(),
        a = this,
        s = this.length;
      for ("string" != typeof e && (t = e, e = void 0), e = e || "fx"; s--;)(r = w._data(a[s], e + "queueHooks")) && r.empty && (i++, r.empty.add(n));
      return n(), o.promise(t)
    }
  });

  function b(e, t) {
    return "none" === w.css(e = t || e, "display") || !w.contains(e.ownerDocument, e)
  }
  var e = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
    s = ["Top", "Right", "Bottom", "Left"],
    l = w.access = function (e, t, n, r, i, o, a) {
      var s = 0,
        l = e.length,
        u = null == n;
      if ("object" === w.type(n))
        for (s in i = !0, n) w.access(e, t, s, n[s], !0, o, a);
      else if (void 0 !== r && (i = !0, w.isFunction(r) || (a = !0), t = u ? a ? (t.call(e, r), null) : (u = t, function (e, t, n) {
          return u.call(w(e), n)
        }) : t))
        for (; s < l; s++) t(e[s], n, a ? r : r.call(e[s], s, t(e[s], n)));
      return i ? e : u ? t.call(e) : l ? t(e[0], n) : o
    },
    ue = /^(?:checkbox|radio)$/i,
    o = y.createElement("input"),
    a = y.createElement("div"),
    u = y.createDocumentFragment();
  if (a.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", g.leadingWhitespace = 3 === a.firstChild.nodeType, g.tbody = !a.getElementsByTagName("tbody").length, g.htmlSerialize = !!a.getElementsByTagName("link").length, g.html5Clone = "<:nav></:nav>" !== y.createElement("nav").cloneNode(!0).outerHTML, o.type = "checkbox", o.checked = !0, u.appendChild(o), g.appendChecked = o.checked, a.innerHTML = "<textarea>x</textarea>", g.noCloneChecked = !!a.cloneNode(!0).lastChild.defaultValue, u.appendChild(a), a.innerHTML = "<input type='radio' checked='checked' name='t'/>", g.checkClone = a.cloneNode(!0).cloneNode(!0).lastChild.checked, g.noCloneEvent = !0, a.attachEvent && (a.attachEvent("onclick", function () {
      g.noCloneEvent = !1
    }), a.cloneNode(!0).click()), null == g.deleteExpando) {
    g.deleteExpando = !0;
    try {
      delete a.test
    } catch (e) {
      g.deleteExpando = !1
    }
  }
  var ce, de, fe = y.createElement("div");
  for (ce in {
      submit: !0,
      change: !0,
      focusin: !0
    }) de = "on" + ce, (g[ce + "Bubbles"] = de in h) || (fe.setAttribute(de, "t"), g[ce + "Bubbles"] = !1 === fe.attributes[de].expando);
  var pe = /^(?:input|select|textarea)$/i,
    he = /^key/,
    me = /^(?:mouse|pointer|contextmenu)|click/,
    ge = /^(?:focusinfocus|focusoutblur)$/,
    ye = /^([^.]*)(?:\.(.+)|)$/;

  function ve() {
    return !0
  }

  function f() {
    return !1
  }

  function be() {
    try {
      return y.activeElement
    } catch (e) {}
  }

  function xe(e) {
    var t = we.split("|"),
      n = e.createDocumentFragment();
    if (n.createElement)
      for (; t.length;) n.createElement(t.pop());
    return n
  }
  w.event = {
    global: {},
    add: function (e, t, n, r, i) {
      var o, a, s, l, u, c, d, f, p, h = w._data(e);
      if (h)
        for (n.handler && (n = (s = n).handler, i = s.selector), n.guid || (n.guid = w.guid++), o = (o = h.events) || (h.events = {}), (u = h.handle) || ((u = h.handle = function (e) {
            return _typeof(w) === v || e && w.event.triggered === e.type ? void 0 : w.event.dispatch.apply(u.elem, arguments)
          }).elem = e), a = (t = (t || "").match(T) || [""]).length; a--;) d = p = (f = ye.exec(t[a]) || [])[1], f = (f[2] || "").split(".").sort(), d && (l = w.event.special[d] || {}, d = (i ? l.delegateType : l.bindType) || d, l = w.event.special[d] || {}, p = w.extend({
          type: d,
          origType: p,
          data: r,
          handler: n,
          guid: n.guid,
          selector: i,
          needsContext: i && w.expr.match.needsContext.test(i),
          namespace: f.join(".")
        }, s), (c = o[d]) || ((c = o[d] = []).delegateCount = 0, l.setup && !1 !== l.setup.call(e, r, f, u)) || (e.addEventListener ? e.addEventListener(d, u, !1) : e.attachEvent && e.attachEvent("on" + d, u)), l.add && (l.add.call(e, p), p.handler.guid || (p.handler.guid = n.guid)), i ? c.splice(c.delegateCount++, 0, p) : c.push(p), w.event.global[d] = !0)
    },
    remove: function (e, t, n, r, i) {
      var o, a, s, l, u, c, d, f, p, h, m, g = w.hasData(e) && w._data(e);
      if (g && (c = g.events)) {
        for (u = (t = (t || "").match(T) || [""]).length; u--;)
          if (p = m = (s = ye.exec(t[u]) || [])[1], h = (s[2] || "").split(".").sort(), p) {
            for (d = w.event.special[p] || {}, f = c[p = (r ? d.delegateType : d.bindType) || p] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = o = f.length; o--;) a = f[o], !i && m !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || r && r !== a.selector && ("**" !== r || !a.selector) || (f.splice(o, 1), a.selector && f.delegateCount--, d.remove && d.remove.call(e, a));
            l && !f.length && (d.teardown && !1 !== d.teardown.call(e, h, g.handle) || w.removeEvent(e, p, g.handle), delete c[p])
          } else
            for (p in c) w.event.remove(e, p + t[u], n, r, !0);
        w.isEmptyObject(c) && (delete g.handle, w._removeData(e, "events"))
      }
    },
    trigger: function (e, t, n, r) {
      var i, o, a, s, l, u, c = [n || y],
        d = m.call(e, "type") ? e.type : e,
        f = m.call(e, "namespace") ? e.namespace.split(".") : [],
        p = l = n = n || y;
      if (3 !== n.nodeType && 8 !== n.nodeType && !ge.test(d + w.event.triggered) && (0 <= d.indexOf(".") && (d = (f = d.split(".")).shift(), f.sort()), o = d.indexOf(":") < 0 && "on" + d, (e = e[w.expando] ? e : new w.Event(d, "object" == _typeof(e) && e)).isTrigger = r ? 2 : 3, e.namespace = f.join("."), e.namespace_re = e.namespace ? new RegExp("(^|\\.)" + f.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = n), t = null == t ? [e] : w.makeArray(t, [e]), s = w.event.special[d] || {}, r || !s.trigger || !1 !== s.trigger.apply(n, t))) {
        if (!r && !s.noBubble && !w.isWindow(n)) {
          for (a = s.delegateType || d, ge.test(a + d) || (p = p.parentNode); p; p = p.parentNode) c.push(p), l = p;
          l === (n.ownerDocument || y) && c.push(l.defaultView || l.parentWindow || h)
        }
        for (u = 0;
          (p = c[u++]) && !e.isPropagationStopped();) e.type = 1 < u ? a : s.bindType || d, (i = (w._data(p, "events") || {})[e.type] && w._data(p, "handle")) && i.apply(p, t), (i = o && p[o]) && i.apply && w.acceptData(p) && (e.result = i.apply(p, t), !1 === e.result) && e.preventDefault();
        if (e.type = d, !r && !e.isDefaultPrevented() && (!s._default || !1 === s._default.apply(c.pop(), t)) && w.acceptData(n) && o && n[d] && !w.isWindow(n)) {
          (l = n[o]) && (n[o] = null), w.event.triggered = d;
          try {
            n[d]()
          } catch (e) {}
          w.event.triggered = void 0, l && (n[o] = l)
        }
        return e.result
      }
    },
    dispatch: function (e) {
      e = w.event.fix(e);
      var t, n, r, i, o, a = c.call(arguments),
        s = (w._data(this, "events") || {})[e.type] || [],
        l = w.event.special[e.type] || {};
      if ((a[0] = e).delegateTarget = this, !l.preDispatch || !1 !== l.preDispatch.call(this, e)) {
        for (o = w.event.handlers.call(this, e, s), t = 0;
          (r = o[t++]) && !e.isPropagationStopped();)
          for (e.currentTarget = r.elem, i = 0;
            (n = r.handlers[i++]) && !e.isImmediatePropagationStopped();) e.namespace_re && !e.namespace_re.test(n.namespace) || (e.handleObj = n, e.data = n.data, void 0 === (n = ((w.event.special[n.origType] || {}).handle || n.handler).apply(r.elem, a))) || !1 !== (e.result = n) || (e.preventDefault(), e.stopPropagation());
        return l.postDispatch && l.postDispatch.call(this, e), e.result
      }
    },
    handlers: function (e, t) {
      var n, r, i, o, a = [],
        s = t.delegateCount,
        l = e.target;
      if (s && l.nodeType && (!e.button || "click" !== e.type))
        for (; l != this; l = l.parentNode || this)
          if (1 === l.nodeType && (!0 !== l.disabled || "click" !== e.type)) {
            for (i = [], o = 0; o < s; o++) void 0 === i[n = (r = t[o]).selector + " "] && (i[n] = r.needsContext ? 0 <= w(n, this).index(l) : w.find(n, this, null, [l]).length), i[n] && i.push(r);
            i.length && a.push({
              elem: l,
              handlers: i
            })
          } return s < t.length && a.push({
        elem: this,
        handlers: t.slice(s)
      }), a
    },
    fix: function (e) {
      if (e[w.expando]) return e;
      var t, n, r, i = e.type,
        o = e,
        a = this.fixHooks[i];
      for (a || (this.fixHooks[i] = a = me.test(i) ? this.mouseHooks : he.test(i) ? this.keyHooks : {}), r = a.props ? this.props.concat(a.props) : this.props, e = new w.Event(o), t = r.length; t--;) e[n = r[t]] = o[n];
      return e.target || (e.target = o.srcElement || y), 3 === e.target.nodeType && (e.target = e.target.parentNode), e.metaKey = !!e.metaKey, a.filter ? a.filter(e, o) : e
    },
    props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
    fixHooks: {},
    keyHooks: {
      props: "char charCode key keyCode".split(" "),
      filter: function (e, t) {
        return null == e.which && (e.which = null != t.charCode ? t.charCode : t.keyCode), e
      }
    },
    mouseHooks: {
      props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
      filter: function (e, t) {
        var n, r, i = t.button,
          o = t.fromElement;
        return null == e.pageX && null != t.clientX && (r = (n = e.target.ownerDocument || y).documentElement, n = n.body, e.pageX = t.clientX + (r && r.scrollLeft || n && n.scrollLeft || 0) - (r && r.clientLeft || n && n.clientLeft || 0), e.pageY = t.clientY + (r && r.scrollTop || n && n.scrollTop || 0) - (r && r.clientTop || n && n.clientTop || 0)), !e.relatedTarget && o && (e.relatedTarget = o === e.target ? t.toElement : o), e.which || void 0 === i || (e.which = 1 & i ? 1 : 2 & i ? 3 : 4 & i ? 2 : 0), e
      }
    },
    special: {
      load: {
        noBubble: !0
      },
      focus: {
        trigger: function () {
          if (this !== be() && this.focus) try {
            return this.focus(), !1
          } catch (e) {}
        },
        delegateType: "focusin"
      },
      blur: {
        trigger: function () {
          return this === be() && this.blur ? (this.blur(), !1) : void 0
        },
        delegateType: "focusout"
      },
      click: {
        trigger: function () {
          return w.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
        },
        _default: function (e) {
          return w.nodeName(e.target, "a")
        }
      },
      beforeunload: {
        postDispatch: function (e) {
          void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
        }
      }
    },
    simulate: function (e, t, n, r) {
      e = w.extend(new w.Event, n, {
        type: e,
        isSimulated: !0,
        originalEvent: {}
      });
      r ? w.event.trigger(e, null, t) : w.event.dispatch.call(t, e), e.isDefaultPrevented() && n.preventDefault()
    }
  }, w.removeEvent = y.removeEventListener ? function (e, t, n) {
    e.removeEventListener && e.removeEventListener(t, n, !1)
  } : function (e, t, n) {
    t = "on" + t;
    e.detachEvent && (_typeof(e[t]) === v && (e[t] = null), e.detachEvent(t, n))
  }, w.Event = function (e, t) {
    return this instanceof w.Event ? (e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? ve : f) : this.type = e, t && w.extend(this, t), this.timeStamp = e && e.timeStamp || w.now(), void(this[w.expando] = !0)) : new w.Event(e, t)
  }, w.Event.prototype = {
    isDefaultPrevented: f,
    isPropagationStopped: f,
    isImmediatePropagationStopped: f,
    preventDefault: function () {
      var e = this.originalEvent;
      this.isDefaultPrevented = ve, e && (e.preventDefault ? e.preventDefault() : e.returnValue = !1)
    },
    stopPropagation: function () {
      var e = this.originalEvent;
      this.isPropagationStopped = ve, e && (e.stopPropagation && e.stopPropagation(), e.cancelBubble = !0)
    },
    stopImmediatePropagation: function () {
      var e = this.originalEvent;
      this.isImmediatePropagationStopped = ve, e && e.stopImmediatePropagation && e.stopImmediatePropagation(), this.stopPropagation()
    }
  }, w.each({
    mouseenter: "mouseover",
    mouseleave: "mouseout",
    pointerenter: "pointerover",
    pointerleave: "pointerout"
  }, function (e, i) {
    w.event.special[e] = {
      delegateType: i,
      bindType: i,
      handle: function (e) {
        var t, n = e.relatedTarget,
          r = e.handleObj;
        return n && (n === this || w.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
      }
    }
  }), g.submitBubbles || (w.event.special.submit = {
    setup: function () {
      return !w.nodeName(this, "form") && void w.event.add(this, "click._submit keypress._submit", function (e) {
        e = e.target, e = w.nodeName(e, "input") || w.nodeName(e, "button") ? e.form : void 0;
        e && !w._data(e, "submitBubbles") && (w.event.add(e, "submit._submit", function (e) {
          e._submit_bubble = !0
        }), w._data(e, "submitBubbles", !0))
      })
    },
    postDispatch: function (e) {
      e._submit_bubble && (delete e._submit_bubble, this.parentNode) && !e.isTrigger && w.event.simulate("submit", this.parentNode, e, !0)
    },
    teardown: function () {
      return !w.nodeName(this, "form") && void w.event.remove(this, "._submit")
    }
  }), g.changeBubbles || (w.event.special.change = {
    setup: function () {
      return pe.test(this.nodeName) ? ("checkbox" !== this.type && "radio" !== this.type || (w.event.add(this, "propertychange._change", function (e) {
        "checked" === e.originalEvent.propertyName && (this._just_changed = !0)
      }), w.event.add(this, "click._change", function (e) {
        this._just_changed && !e.isTrigger && (this._just_changed = !1), w.event.simulate("change", this, e, !0)
      })), !1) : void w.event.add(this, "beforeactivate._change", function (e) {
        e = e.target;
        pe.test(e.nodeName) && !w._data(e, "changeBubbles") && (w.event.add(e, "change._change", function (e) {
          !this.parentNode || e.isSimulated || e.isTrigger || w.event.simulate("change", this.parentNode, e, !0)
        }), w._data(e, "changeBubbles", !0))
      })
    },
    handle: function (e) {
      var t = e.target;
      return this !== t || e.isSimulated || e.isTrigger || "radio" !== t.type && "checkbox" !== t.type ? e.handleObj.handler.apply(this, arguments) : void 0
    },
    teardown: function () {
      return w.event.remove(this, "._change"), !pe.test(this.nodeName)
    }
  }), g.focusinBubbles || w.each({
    focus: "focusin",
    blur: "focusout"
  }, function (n, r) {
    function i(e) {
      w.event.simulate(r, e.target, w.event.fix(e), !0)
    }
    w.event.special[r] = {
      setup: function () {
        var e = this.ownerDocument || this,
          t = w._data(e, r);
        t || e.addEventListener(n, i, !0), w._data(e, r, (t || 0) + 1)
      },
      teardown: function () {
        var e = this.ownerDocument || this,
          t = w._data(e, r) - 1;
        t ? w._data(e, r, t) : (e.removeEventListener(n, i, !0), w._removeData(e, r))
      }
    }
  }), w.fn.extend({
    on: function (e, t, n, r, i) {
      var o, a;
      if ("object" == _typeof(e)) {
        for (o in "string" != typeof t && (n = n || t, t = void 0), e) this.on(o, t, n, e[o], i);
        return this
      }
      if (null == n && null == r ? (r = t, n = t = void 0) : null == r && ("string" == typeof t ? (r = n, n = void 0) : (r = n, n = t, t = void 0)), !1 === r) r = f;
      else if (!r) return this;
      return 1 === i && (a = r, (r = function (e) {
        return w().off(e), a.apply(this, arguments)
      }).guid = a.guid || (a.guid = w.guid++)), this.each(function () {
        w.event.add(this, e, r, n, t)
      })
    },
    one: function (e, t, n, r) {
      return this.on(e, t, n, r, 1)
    },
    off: function (e, t, n) {
      var r, i;
      if (e && e.preventDefault && e.handleObj) r = e.handleObj, w(e.delegateTarget).off(r.namespace ? r.origType + "." + r.namespace : r.origType, r.selector, r.handler);
      else {
        if ("object" != _typeof(e)) return !1 !== t && "function" != typeof t || (n = t, t = void 0), !1 === n && (n = f), this.each(function () {
          w.event.remove(this, e, n, t)
        });
        for (i in e) this.off(i, t, e[i])
      }
      return this
    },
    trigger: function (e, t) {
      return this.each(function () {
        w.event.trigger(e, t, this)
      })
    },
    triggerHandler: function (e, t) {
      var n = this[0];
      return n ? w.event.trigger(e, t, n, !0) : void 0
    }
  });
  var we = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",
    Te = / jQuery\d+="(?:null|\d+)"/g,
    Ce = new RegExp("<(?:" + we + ")[\\s/>]", "i"),
    Ne = /^\s+/,
    Ee = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
    ke = /<([\w:]+)/,
    Se = /<tbody/i,
    Ae = /<|&#?\w+;/,
    De = /<(?:script|style|link)/i,
    je = /checked\s*(?:[^=]|=\s*.checked.)/i,
    Le = /^$|\/(?:java|ecma)script/i,
    _e = /^true\/(.*)/,
    He = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,
    x = {
      option: [1, "<select multiple='multiple'>", "</select>"],
      legend: [1, "<fieldset>", "</fieldset>"],
      area: [1, "<map>", "</map>"],
      param: [1, "<object>", "</object>"],
      thead: [1, "<table>", "</table>"],
      tr: [2, "<table><tbody>", "</tbody></table>"],
      col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
      td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
      _default: g.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
    },
    qe = xe(y).appendChild(y.createElement("div"));

  function C(e, t) {
    var n, r, i = 0,
      o = _typeof(e.getElementsByTagName) !== v ? e.getElementsByTagName(t || "*") : _typeof(e.querySelectorAll) !== v ? e.querySelectorAll(t || "*") : void 0;
    if (!o)
      for (o = [], n = e.childNodes || e; null != (r = n[i]); i++) !t || w.nodeName(r, t) ? o.push(r) : w.merge(o, C(r, t));
    return void 0 === t || t && w.nodeName(e, t) ? w.merge([e], o) : o
  }

  function Me(e) {
    ue.test(e.type) && (e.defaultChecked = e.checked)
  }

  function Fe(e, t) {
    return w.nodeName(e, "table") && w.nodeName(11 !== t.nodeType ? t : t.firstChild, "tr") ? e.getElementsByTagName("tbody")[0] || e.appendChild(e.ownerDocument.createElement("tbody")) : e
  }

  function Oe(e) {
    return e.type = (null !== w.find.attr(e, "type")) + "/" + e.type, e
  }

  function Be(e) {
    var t = _e.exec(e.type);
    return t ? e.type = t[1] : e.removeAttribute("type"), e
  }

  function Pe(e, t) {
    for (var n, r = 0; null != (n = e[r]); r++) w._data(n, "globalEval", !t || w._data(t[r], "globalEval"))
  }

  function Re(e, t) {
    if (1 === t.nodeType && w.hasData(e)) {
      var n, r, i, e = w._data(e),
        o = w._data(t, e),
        a = e.events;
      if (a)
        for (n in delete o.handle, o.events = {}, a)
          for (r = 0, i = a[n].length; r < i; r++) w.event.add(t, n, a[n][r]);
      o.data && (o.data = w.extend({}, o.data))
    }
  }
  x.optgroup = x.option, x.tbody = x.tfoot = x.colgroup = x.caption = x.thead, x.th = x.td, w.extend({
    clone: function (e, t, n) {
      var r, i, o, a, s, l, u, c, d = w.contains(e.ownerDocument, e);
      if (g.html5Clone || w.isXMLDoc(e) || !Ce.test("<" + e.nodeName + ">") ? o = e.cloneNode(!0) : (qe.innerHTML = e.outerHTML, qe.removeChild(o = qe.firstChild)), !(g.noCloneEvent && g.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || w.isXMLDoc(e)))
        for (r = C(o), s = C(e), a = 0; null != (i = s[a]); ++a)
          if (r[a]) {
            f = void 0;
            p = void 0;
            l = void 0;
            u = void 0;
            c = void 0;
            var f = i;
            var p = r[a];
            if (1 === p.nodeType) {
              if (l = p.nodeName.toLowerCase(), !g.noCloneEvent && p[w.expando]) {
                for (u in (c = w._data(p)).events) w.removeEvent(p, u, c.handle);
                p.removeAttribute(w.expando)
              }
              "script" === l && p.text !== f.text ? (Oe(p).text = f.text, Be(p)) : "object" === l ? (p.parentNode && (p.outerHTML = f.outerHTML), g.html5Clone && f.innerHTML && !w.trim(p.innerHTML) && (p.innerHTML = f.innerHTML)) : "input" === l && ue.test(f.type) ? (p.defaultChecked = p.checked = f.checked, p.value !== f.value && (p.value = f.value)) : "option" === l ? p.defaultSelected = p.selected = f.defaultSelected : "input" !== l && "textarea" !== l || (p.defaultValue = f.defaultValue)
            }
          } if (t)
        if (n)
          for (s = s || C(e), r = r || C(o), a = 0; null != (i = s[a]); a++) Re(i, r[a]);
        else Re(e, o);
      return 0 < (r = C(o, "script")).length && Pe(r, !d && C(e, "script")), r = s = i = null, o
    },
    buildFragment: function (e, t, n, r) {
      for (var i, o, a, s, l, u, c, d = e.length, f = xe(t), p = [], h = 0; h < d; h++)
        if ((o = e[h]) || 0 === o)
          if ("object" === w.type(o)) w.merge(p, o.nodeType ? [o] : o);
          else if (Ae.test(o)) {
        for (s = s || f.appendChild(t.createElement("div")), l = (ke.exec(o) || ["", ""])[1].toLowerCase(), s.innerHTML = (c = x[l] || x._default)[1] + o.replace(Ee, "<$1></$2>") + c[2], i = c[0]; i--;) s = s.lastChild;
        if (!g.leadingWhitespace && Ne.test(o) && p.push(t.createTextNode(Ne.exec(o)[0])), !g.tbody)
          for (i = (o = "table" !== l || Se.test(o) ? "<table>" !== c[1] || Se.test(o) ? 0 : s : s.firstChild) && o.childNodes.length; i--;) w.nodeName(u = o.childNodes[i], "tbody") && !u.childNodes.length && o.removeChild(u);
        for (w.merge(p, s.childNodes), s.textContent = ""; s.firstChild;) s.removeChild(s.firstChild);
        s = f.lastChild
      } else p.push(t.createTextNode(o));
      for (s && f.removeChild(s), g.appendChecked || w.grep(C(p, "input"), Me), h = 0; o = p[h++];)
        if ((!r || -1 === w.inArray(o, r)) && (a = w.contains(o.ownerDocument, o), s = C(f.appendChild(o), "script"), a && Pe(s), n))
          for (i = 0; o = s[i++];) Le.test(o.type || "") && n.push(o);
      return s = null, f
    },
    cleanData: function (e, t) {
      for (var n, r, i, o, a = 0, s = w.expando, l = w.cache, u = g.deleteExpando, c = w.event.special; null != (n = e[a]); a++)
        if ((t || w.acceptData(n)) && (o = (i = n[s]) && l[i])) {
          if (o.events)
            for (r in o.events) c[r] ? w.event.remove(n, r) : w.removeEvent(n, r, o.handle);
          l[i] && (delete l[i], u ? delete n[s] : _typeof(n.removeAttribute) !== v ? n.removeAttribute(s) : n[s] = null, d.push(i))
        }
    }
  }), w.fn.extend({
    text: function (e) {
      return l(this, function (e) {
        return void 0 === e ? w.text(this) : this.empty().append((this[0] && this[0].ownerDocument || y).createTextNode(e))
      }, null, e, arguments.length)
    },
    append: function () {
      return this.domManip(arguments, function (e) {
        1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Fe(this, e).appendChild(e)
      })
    },
    prepend: function () {
      return this.domManip(arguments, function (e) {
        var t;
        1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (t = Fe(this, e)).insertBefore(e, t.firstChild)
      })
    },
    before: function () {
      return this.domManip(arguments, function (e) {
        this.parentNode && this.parentNode.insertBefore(e, this)
      })
    },
    after: function () {
      return this.domManip(arguments, function (e) {
        this.parentNode && this.parentNode.insertBefore(e, this.nextSibling)
      })
    },
    remove: function (e, t) {
      for (var n, r = e ? w.filter(e, this) : this, i = 0; null != (n = r[i]); i++) t || 1 !== n.nodeType || w.cleanData(C(n)), n.parentNode && (t && w.contains(n.ownerDocument, n) && Pe(C(n, "script")), n.parentNode.removeChild(n));
      return this
    },
    empty: function () {
      for (var e, t = 0; null != (e = this[t]); t++) {
        for (1 === e.nodeType && w.cleanData(C(e, !1)); e.firstChild;) e.removeChild(e.firstChild);
        e.options && w.nodeName(e, "select") && (e.options.length = 0)
      }
      return this
    },
    clone: function (e, t) {
      return e = null != e && e, t = null == t ? e : t, this.map(function () {
        return w.clone(this, e, t)
      })
    },
    html: function (e) {
      return l(this, function (e) {
        var t = this[0] || {},
          n = 0,
          r = this.length;
        if (void 0 === e) return 1 === t.nodeType ? t.innerHTML.replace(Te, "") : void 0;
        if (!("string" != typeof e || De.test(e) || !g.htmlSerialize && Ce.test(e) || !g.leadingWhitespace && Ne.test(e) || x[(ke.exec(e) || ["", ""])[1].toLowerCase()])) {
          e = e.replace(Ee, "<$1></$2>");
          try {
            for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (w.cleanData(C(t, !1)), t.innerHTML = e);
            t = 0
          } catch (e) {}
        }
        t && this.empty().append(e)
      }, null, e, arguments.length)
    },
    replaceWith: function () {
      var t = arguments[0];
      return this.domManip(arguments, function (e) {
        t = this.parentNode, w.cleanData(C(this)), t && t.replaceChild(e, this)
      }), t && (t.length || t.nodeType) ? this : this.remove()
    },
    detach: function (e) {
      return this.remove(e, !0)
    },
    domManip: function (n, r) {
      n = B.apply([], n);
      var e, t, i, o, a, s, l = 0,
        u = this.length,
        c = this,
        d = u - 1,
        f = n[0],
        p = w.isFunction(f);
      if (p || 1 < u && "string" == typeof f && !g.checkClone && je.test(f)) return this.each(function (e) {
        var t = c.eq(e);
        p && (n[0] = f.call(this, e, t.html())), t.domManip(n, r)
      });
      if (u && (e = (s = w.buildFragment(n, this[0].ownerDocument, !1, this)).firstChild, 1 === s.childNodes.length && (s = e), e)) {
        for (i = (o = w.map(C(s, "script"), Oe)).length; l < u; l++) t = s, l !== d && (t = w.clone(t, !0, !0), i) && w.merge(o, C(t, "script")), r.call(this[l], t, l);
        if (i)
          for (a = o[o.length - 1].ownerDocument, w.map(o, Be), l = 0; l < i; l++) t = o[l], Le.test(t.type || "") && !w._data(t, "globalEval") && w.contains(a, t) && (t.src ? w._evalUrl && w._evalUrl(t.src) : w.globalEval((t.text || t.textContent || t.innerHTML || "").replace(He, "")));
        s = e = null
      }
      return this
    }
  }), w.each({
    appendTo: "append",
    prependTo: "prepend",
    insertBefore: "before",
    insertAfter: "after",
    replaceAll: "replaceWith"
  }, function (e, a) {
    w.fn[e] = function (e) {
      for (var t, n = 0, r = [], i = w(e), o = i.length - 1; n <= o; n++) t = n === o ? this : this.clone(!0), w(i[n])[a](t), P.apply(r, t.get());
      return this.pushStack(r)
    }
  });
  var We, p, $e = {};

  function ze(e, t) {
    e = w(t.createElement(e)).appendTo(t.body), t = h.getDefaultComputedStyle && (t = h.getDefaultComputedStyle(e[0])) ? t.display : w.css(e[0], "display");
    return e.detach(), t
  }

  function Ie(e) {
    var t = y,
      n = $e[e];
    return n || ("none" !== (n = ze(e, t)) && n || ((t = ((We = (We || w("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentWindow || We[0].contentDocument).document).write(), t.close(), n = ze(e, t), We.detach()), $e[e] = n), n
  }
  g.shrinkWrapBlocks = function () {
    var e, t, n;
    return null != p ? p : (p = !1, (t = y.getElementsByTagName("body")[0]) && t.style ? (e = y.createElement("div"), (n = y.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", t.appendChild(n).appendChild(e), _typeof(e.style.zoom) !== v && (e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", e.appendChild(y.createElement("div")).style.width = "5px", p = 3 !== e.offsetWidth), t.removeChild(n), p) : void 0)
  };
  var N, E, Xe, Ue, Ve, Je, k, Ye = /^margin/,
    Ge = new RegExp("^(" + e + ")(?!px)[a-z%]+$", "i"),
    Qe = /^(top|right|bottom|left)$/;

  function Ke(t, n) {
    return {
      get: function () {
        var e = t();
        if (null != e) return e ? void delete this.get : (this.get = n).apply(this, arguments)
      }
    }
  }
  h.getComputedStyle ? (N = function (e) {
    return (e.ownerDocument.defaultView.opener ? e.ownerDocument.defaultView : h).getComputedStyle(e, null)
  }, E = function (e, t, n) {
    var r, i = e.style,
      o = (n = n || N(e)) ? n.getPropertyValue(t) || n[t] : void 0;
    return n && ("" !== o || w.contains(e.ownerDocument, e) || (o = w.style(e, t)), Ge.test(o)) && Ye.test(t) && (e = i.width, t = i.minWidth, r = i.maxWidth, i.minWidth = i.maxWidth = i.width = o, o = n.width, i.width = e, i.minWidth = t, i.maxWidth = r), void 0 === o ? o : o + ""
  }) : y.documentElement.currentStyle && (N = function (e) {
    return e.currentStyle
  }, E = function (e, t, n) {
    var r, i, o, a = e.style;
    return null == (n = (n = n || N(e)) ? n[t] : void 0) && a && a[t] && (n = a[t]), Ge.test(n) && !Qe.test(t) && (r = a.left, (o = (i = e.runtimeStyle) && i.left) && (i.left = e.currentStyle.left), a.left = "fontSize" === t ? "1em" : n, n = a.pixelLeft + "px", a.left = r, o) && (i.left = o), void 0 === n ? n : n + "" || "auto"
  }), (o = y.createElement("div")).innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", (u = (u = o.getElementsByTagName("a")[0]) && u.style) && (k = function () {
    var e, t, n, r = y.getElementsByTagName("body")[0];
    r && r.style && (e = y.createElement("div"), (t = y.createElement("div")).style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", r.appendChild(t).appendChild(e), e.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", Xe = Ue = !1, Je = !0, h.getComputedStyle && (Xe = "1%" !== (h.getComputedStyle(e, null) || {}).top, Ue = "4px" === (h.getComputedStyle(e, null) || {
      width: "4px"
    }).width, (n = e.appendChild(y.createElement("div"))).style.cssText = e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", n.style.marginRight = n.style.width = "0", e.style.width = "1px", Je = !parseFloat((h.getComputedStyle(n, null) || {}).marginRight), e.removeChild(n)), e.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", (n = e.getElementsByTagName("td"))[0].style.cssText = "margin:0;border:0;padding:0;display:none", (Ve = 0 === n[0].offsetHeight) && (n[0].style.display = "", n[1].style.display = "none", Ve = 0 === n[0].offsetHeight), r.removeChild(t))
  }, u.cssText = "float:left;opacity:.5", g.opacity = "0.5" === u.opacity, g.cssFloat = !!u.cssFloat, o.style.backgroundClip = "content-box", o.cloneNode(!0).style.backgroundClip = "", g.clearCloneStyle = "content-box" === o.style.backgroundClip, g.boxSizing = "" === u.boxSizing || "" === u.MozBoxSizing || "" === u.WebkitBoxSizing, w.extend(g, {
    reliableHiddenOffsets: function () {
      return null == Ve && k(), Ve
    },
    boxSizingReliable: function () {
      return null == Ue && k(), Ue
    },
    pixelPosition: function () {
      return null == Xe && k(), Xe
    },
    reliableMarginRight: function () {
      return null == Je && k(), Je
    }
  })), w.swap = function (e, t, n, r) {
    var i, o = {};
    for (i in t) o[i] = e.style[i], e.style[i] = t[i];
    for (i in n = n.apply(e, r || []), t) e.style[i] = o[i];
    return n
  };
  var Ze = /alpha\([^)]*\)/i,
    et = /opacity\s*=\s*([^)]*)/,
    tt = /^(none|table(?!-c[ea]).+)/,
    nt = new RegExp("^(" + e + ")(.*)$", "i"),
    rt = new RegExp("^([+-])=(" + e + ")", "i"),
    it = {
      position: "absolute",
      visibility: "hidden",
      display: "block"
    },
    ot = {
      letterSpacing: "0",
      fontWeight: "400"
    },
    at = ["Webkit", "O", "Moz", "ms"];

  function st(e, t) {
    if (t in e) return t;
    for (var n = t.charAt(0).toUpperCase() + t.slice(1), r = t, i = at.length; i--;)
      if ((t = at[i] + n) in e) return t;
    return r
  }

  function lt(e, t) {
    for (var n, r, i, o = [], a = 0, s = e.length; a < s; a++)(r = e[a]).style && (o[a] = w._data(r, "olddisplay"), n = r.style.display, t ? (o[a] || "none" !== n || (r.style.display = ""), "" === r.style.display && b(r) && (o[a] = w._data(r, "olddisplay", Ie(r.nodeName)))) : (i = b(r), (n && "none" !== n || !i) && w._data(r, "olddisplay", i ? n : w.css(r, "display"))));
    for (a = 0; a < s; a++) !(r = e[a]).style || t && "none" !== r.style.display && "" !== r.style.display || (r.style.display = t ? o[a] || "" : "none");
    return e
  }

  function ut(e, t, n) {
    var r = nt.exec(t);
    return r ? Math.max(0, r[1] - (n || 0)) + (r[2] || "px") : t
  }

  function ct(e, t, n, r, i) {
    for (var o = n === (r ? "border" : "content") ? 4 : "width" === t ? 1 : 0, a = 0; o < 4; o += 2) "margin" === n && (a += w.css(e, n + s[o], !0, i)), r ? ("content" === n && (a -= w.css(e, "padding" + s[o], !0, i)), "margin" !== n && (a -= w.css(e, "border" + s[o] + "Width", !0, i))) : (a += w.css(e, "padding" + s[o], !0, i), "padding" !== n && (a += w.css(e, "border" + s[o] + "Width", !0, i)));
    return a
  }

  function dt(e, t, n) {
    var r = !0,
      i = "width" === t ? e.offsetWidth : e.offsetHeight,
      o = N(e),
      a = g.boxSizing && "border-box" === w.css(e, "boxSizing", !1, o);
    if (i <= 0 || null == i) {
      if (((i = E(e, t, o)) < 0 || null == i) && (i = e.style[t]), Ge.test(i)) return i;
      r = a && (g.boxSizingReliable() || i === e.style[t]), i = parseFloat(i) || 0
    }
    return i + ct(e, t, n || (a ? "border" : "content"), r, o) + "px"
  }

  function S(e, t, n, r, i) {
    return new S.prototype.init(e, t, n, r, i)
  }
  w.extend({
    cssHooks: {
      opacity: {
        get: function (e, t) {
          if (t) return "" === (t = E(e, "opacity")) ? "1" : t
        }
      }
    },
    cssNumber: {
      columnCount: !0,
      fillOpacity: !0,
      flexGrow: !0,
      flexShrink: !0,
      fontWeight: !0,
      lineHeight: !0,
      opacity: !0,
      order: !0,
      orphans: !0,
      widows: !0,
      zIndex: !0,
      zoom: !0
    },
    cssProps: {
      float: g.cssFloat ? "cssFloat" : "styleFloat"
    },
    style: function (e, t, n, r) {
      if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
        var i, o, a, s = w.camelCase(t),
          l = e.style;
        if (t = w.cssProps[s] || (w.cssProps[s] = st(l, s)), a = w.cssHooks[t] || w.cssHooks[s], void 0 === n) return a && "get" in a && void 0 !== (i = a.get(e, !1, r)) ? i : l[t];
        if ("string" === (o = _typeof(n)) && (i = rt.exec(n)) && (n = (i[1] + 1) * i[2] + parseFloat(w.css(e, t)), o = "number"), null != n && n == n && ("number" !== o || w.cssNumber[s] || (n += "px"), g.clearCloneStyle || "" !== n || 0 !== t.indexOf("background") || (l[t] = "inherit"), !(a && "set" in a && void 0 === (n = a.set(e, n, r))))) try {
          l[t] = n
        } catch (e) {}
      }
    },
    css: function (e, t, n, r) {
      var i, o = w.camelCase(t);
      return t = w.cssProps[o] || (w.cssProps[o] = st(e.style, o)), "normal" === (i = void 0 === (i = (o = w.cssHooks[t] || w.cssHooks[o]) && "get" in o ? o.get(e, !0, n) : i) ? E(e, t, r) : i) && t in ot && (i = ot[t]), ("" === n || n) && (o = parseFloat(i), !0 === n || w.isNumeric(o)) ? o || 0 : i
    }
  }), w.each(["height", "width"], function (e, i) {
    w.cssHooks[i] = {
      get: function (e, t, n) {
        return t ? tt.test(w.css(e, "display")) && 0 === e.offsetWidth ? w.swap(e, it, function () {
          return dt(e, i, n)
        }) : dt(e, i, n) : void 0
      },
      set: function (e, t, n) {
        var r = n && N(e);
        return ut(0, t, n ? ct(e, i, n, g.boxSizing && "border-box" === w.css(e, "boxSizing", !1, r), r) : 0)
      }
    }
  }), g.opacity || (w.cssHooks.opacity = {
    get: function (e, t) {
      return et.test((t && e.currentStyle ? e.currentStyle : e.style).filter || "") ? .01 * parseFloat(RegExp.$1) + "" : t ? "1" : ""
    },
    set: function (e, t) {
      var n = e.style,
        e = e.currentStyle,
        r = w.isNumeric(t) ? "alpha(opacity=" + 100 * t + ")" : "",
        i = e && e.filter || n.filter || "";
      ((n.zoom = 1) <= t || "" === t) && "" === w.trim(i.replace(Ze, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === t || e && !e.filter) || (n.filter = Ze.test(i) ? i.replace(Ze, r) : i + " " + r)
    }
  }), w.cssHooks.marginRight = Ke(g.reliableMarginRight, function (e, t) {
    return t ? w.swap(e, {
      display: "inline-block"
    }, E, [e, "marginRight"]) : void 0
  }), w.each({
    margin: "",
    padding: "",
    border: "Width"
  }, function (i, o) {
    w.cssHooks[i + o] = {
      expand: function (e) {
        for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + s[t] + o] = r[t] || r[t - 2] || r[0];
        return n
      }
    }, Ye.test(i) || (w.cssHooks[i + o].set = ut)
  }), w.fn.extend({
    css: function (e, t) {
      return l(this, function (e, t, n) {
        var r, i, o = {},
          a = 0;
        if (w.isArray(t)) {
          for (r = N(e), i = t.length; a < i; a++) o[t[a]] = w.css(e, t[a], !1, r);
          return o
        }
        return void 0 !== n ? w.style(e, t, n) : w.css(e, t)
      }, e, t, 1 < arguments.length)
    },
    show: function () {
      return lt(this, !0)
    },
    hide: function () {
      return lt(this)
    },
    toggle: function (e) {
      return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function () {
        b(this) ? w(this).show() : w(this).hide()
      })
    }
  }), ((w.Tween = S).prototype = {
    constructor: S,
    init: function (e, t, n, r, i, o) {
      this.elem = e, this.prop = n, this.easing = i || "swing", this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (w.cssNumber[n] ? "" : "px")
    },
    cur: function () {
      var e = S.propHooks[this.prop];
      return (e && e.get ? e : S.propHooks._default).get(this)
    },
    run: function (e) {
      var t, n = S.propHooks[this.prop];
      return this.options.duration ? this.pos = t = w.easing[this.easing](e, this.options.duration * e, 0, 1, this.options.duration) : this.pos = t = e, this.now = (this.end - this.start) * t + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), (n && n.set ? n : S.propHooks._default).set(this), this
    }
  }).init.prototype = S.prototype, (S.propHooks = {
    _default: {
      get: function (e) {
        var t;
        return null == e.elem[e.prop] || e.elem.style && null != e.elem.style[e.prop] ? (t = w.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0 : e.elem[e.prop]
      },
      set: function (e) {
        w.fx.step[e.prop] ? w.fx.step[e.prop](e) : e.elem.style && (null != e.elem.style[w.cssProps[e.prop]] || w.cssHooks[e.prop]) ? w.style(e.elem, e.prop, e.now + e.unit) : e.elem[e.prop] = e.now
      }
    }
  }).scrollTop = S.propHooks.scrollLeft = {
    set: function (e) {
      e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
    }
  }, w.easing = {
    linear: function (e) {
      return e
    },
    swing: function (e) {
      return .5 - Math.cos(e * Math.PI) / 2
    }
  }, w.fx = S.prototype.init, w.fx.step = {};
  var A, ft, D, pt = /^(?:toggle|show|hide)$/,
    ht = new RegExp("^(?:([+-])=|)(" + e + ")([a-z%]*)$", "i"),
    mt = /queueHooks$/,
    gt = [function (t, e, n) {
      var r, i, o, a, s, l, u, c = this,
        d = {},
        f = t.style,
        p = t.nodeType && b(t),
        h = w._data(t, "fxshow");
      for (r in n.queue || (null == (s = w._queueHooks(t, "fx")).unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function () {
          s.unqueued || l()
        }), s.unqueued++, c.always(function () {
          c.always(function () {
            s.unqueued--, w.queue(t, "fx").length || s.empty.fire()
          })
        })), 1 === t.nodeType && ("height" in e || "width" in e) && (n.overflow = [f.overflow, f.overflowX, f.overflowY], u = w.css(t, "display"), "inline" === ("none" === u ? w._data(t, "olddisplay") || Ie(t.nodeName) : u)) && "none" === w.css(t, "float") && (g.inlineBlockNeedsLayout && "inline" !== Ie(t.nodeName) ? f.zoom = 1 : f.display = "inline-block"), n.overflow && (f.overflow = "hidden", g.shrinkWrapBlocks() || c.always(function () {
          f.overflow = n.overflow[0], f.overflowX = n.overflow[1], f.overflowY = n.overflow[2]
        })), e)
        if (i = e[r], pt.exec(i)) {
          if (delete e[r], o = o || "toggle" === i, i === (p ? "hide" : "show")) {
            if ("show" !== i || !h || void 0 === h[r]) continue;
            p = !0
          }
          d[r] = h && h[r] || w.style(t, r)
        } else u = void 0;
      if (w.isEmptyObject(d)) "inline" === ("none" === u ? Ie(t.nodeName) : u) && (f.display = u);
      else
        for (r in h ? "hidden" in h && (p = h.hidden) : h = w._data(t, "fxshow", {}), o && (h.hidden = !p), p ? w(t).show() : c.done(function () {
            w(t).hide()
          }), c.done(function () {
            for (var e in w._removeData(t, "fxshow"), d) w.style(t, e, d[e])
          }), d) a = bt(p ? h[r] : 0, r, c), r in h || (h[r] = a.start, p && (a.end = a.start, a.start = "width" === r || "height" === r ? 1 : 0))
    }],
    j = {
      "*": [function (e, t) {
        var n = this.createTween(e, t),
          r = n.cur(),
          t = ht.exec(t),
          i = t && t[3] || (w.cssNumber[e] ? "" : "px"),
          o = (w.cssNumber[e] || "px" !== i && +r) && ht.exec(w.css(n.elem, e)),
          a = 1,
          s = 20;
        if (o && o[3] !== i)
          for (i = i || o[3], t = t || [], o = +r || 1; w.style(n.elem, e, (o /= a = a || ".5") + i), a !== (a = n.cur() / r) && 1 !== a && --s;);
        return t && (o = n.start = +o || +r || 0, n.unit = i, n.end = t[1] ? o + (t[1] + 1) * t[2] : +t[2]), n
      }]
    };

  function yt() {
    return setTimeout(function () {
      A = void 0
    }), A = w.now()
  }

  function vt(e, t) {
    var n, r = {
        height: e
      },
      i = 0;
    for (t = t ? 1 : 0; i < 4; i += 2 - t) r["margin" + (n = s[i])] = r["padding" + n] = e;
    return t && (r.opacity = r.width = e), r
  }

  function bt(e, t, n) {
    for (var r, i = (j[t] || []).concat(j["*"]), o = 0, a = i.length; o < a; o++)
      if (r = i[o].call(n, t, e)) return r
  }

  function xt(i, e, t) {
    var n, o, r, a, s, l, u, c = 0,
      d = gt.length,
      f = w.Deferred().always(function () {
        delete p.elem
      }),
      p = function () {
        if (o) return !1;
        for (var e = A || yt(), e = Math.max(0, h.startTime + h.duration - e), t = 1 - (e / h.duration || 0), n = 0, r = h.tweens.length; n < r; n++) h.tweens[n].run(t);
        return f.notifyWith(i, [h, t, e]), t < 1 && r ? e : (f.resolveWith(i, [h]), !1)
      },
      h = f.promise({
        elem: i,
        props: w.extend({}, e),
        opts: w.extend(!0, {
          specialEasing: {}
        }, t),
        originalProperties: e,
        originalOptions: t,
        startTime: A || yt(),
        duration: t.duration,
        tweens: [],
        createTween: function (e, t) {
          t = w.Tween(i, h.opts, e, t, h.opts.specialEasing[e] || h.opts.easing);
          return h.tweens.push(t), t
        },
        stop: function (e) {
          var t = 0,
            n = e ? h.tweens.length : 0;
          if (!o) {
            for (o = !0; t < n; t++) h.tweens[t].run(1);
            e ? f.resolveWith(i, [h, e]) : f.rejectWith(i, [h, e])
          }
          return this
        }
      }),
      m = h.props,
      g = m,
      y = h.opts.specialEasing;
    for (r in g)
      if (a = w.camelCase(r), s = y[a], l = g[r], w.isArray(l) && (s = l[1], l = g[r] = l[0]), r !== a && (g[a] = l, delete g[r]), u = w.cssHooks[a], u && "expand" in u)
        for (r in l = u.expand(l), delete g[a], l) r in g || (g[r] = l[r], y[r] = s);
      else y[a] = s;
    for (; c < d; c++)
      if (n = gt[c].call(h, i, m, h.opts)) return n;
    return w.map(m, bt, h), w.isFunction(h.opts.start) && h.opts.start.call(i, h), w.fx.timer(w.extend(p, {
      elem: i,
      anim: h,
      queue: h.opts.queue
    })), h.progress(h.opts.progress).done(h.opts.done, h.opts.complete).fail(h.opts.fail).always(h.opts.always)
  }
  w.Animation = w.extend(xt, {
    tweener: function (e, t) {
      for (var n, r = 0, i = (e = w.isFunction(e) ? (t = e, ["*"]) : e.split(" ")).length; r < i; r++) n = e[r], j[n] = j[n] || [], j[n].unshift(t)
    },
    prefilter: function (e, t) {
      t ? gt.unshift(e) : gt.push(e)
    }
  }), w.speed = function (e, t, n) {
    var r = e && "object" == _typeof(e) ? w.extend({}, e) : {
      complete: n || !n && t || w.isFunction(e) && e,
      duration: e,
      easing: n && t || t && !w.isFunction(t) && t
    };
    return r.duration = w.fx.off ? 0 : "number" == typeof r.duration ? r.duration : r.duration in w.fx.speeds ? w.fx.speeds[r.duration] : w.fx.speeds._default, null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function () {
      w.isFunction(r.old) && r.old.call(this), r.queue && w.dequeue(this, r.queue)
    }, r
  }, w.fn.extend({
    fadeTo: function (e, t, n, r) {
      return this.filter(b).css("opacity", 0).show().end().animate({
        opacity: t
      }, e, n, r)
    },
    animate: function (t, e, n, r) {
      function i() {
        var e = xt(this, w.extend({}, t), a);
        (o || w._data(this, "finish")) && e.stop(!0)
      }
      var o = w.isEmptyObject(t),
        a = w.speed(e, n, r);
      return i.finish = i, o || !1 === a.queue ? this.each(i) : this.queue(a.queue, i)
    },
    stop: function (i, e, o) {
      function a(e) {
        var t = e.stop;
        delete e.stop, t(o)
      }
      return "string" != typeof i && (o = e, e = i, i = void 0), e && !1 !== i && this.queue(i || "fx", []), this.each(function () {
        var e = !0,
          t = null != i && i + "queueHooks",
          n = w.timers,
          r = w._data(this);
        if (t) r[t] && r[t].stop && a(r[t]);
        else
          for (t in r) r[t] && r[t].stop && mt.test(t) && a(r[t]);
        for (t = n.length; t--;) n[t].elem !== this || null != i && n[t].queue !== i || (n[t].anim.stop(o), e = !1, n.splice(t, 1));
        !e && o || w.dequeue(this, i)
      })
    },
    finish: function (a) {
      return !1 !== a && (a = a || "fx"), this.each(function () {
        var e, t = w._data(this),
          n = t[a + "queue"],
          r = t[a + "queueHooks"],
          i = w.timers,
          o = n ? n.length : 0;
        for (t.finish = !0, w.queue(this, a, []), r && r.stop && r.stop.call(this, !0), e = i.length; e--;) i[e].elem === this && i[e].queue === a && (i[e].anim.stop(!0), i.splice(e, 1));
        for (e = 0; e < o; e++) n[e] && n[e].finish && n[e].finish.call(this);
        delete t.finish
      })
    }
  }), w.each(["toggle", "show", "hide"], function (e, r) {
    var i = w.fn[r];
    w.fn[r] = function (e, t, n) {
      return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(vt(r, !0), e, t, n)
    }
  }), w.each({
    slideDown: vt("show"),
    slideUp: vt("hide"),
    slideToggle: vt("toggle"),
    fadeIn: {
      opacity: "show"
    },
    fadeOut: {
      opacity: "hide"
    },
    fadeToggle: {
      opacity: "toggle"
    }
  }, function (e, r) {
    w.fn[e] = function (e, t, n) {
      return this.animate(r, e, t, n)
    }
  }), w.timers = [], w.fx.tick = function () {
    var e, t = w.timers,
      n = 0;
    for (A = w.now(); n < t.length; n++)(e = t[n])() || t[n] !== e || t.splice(n--, 1);
    t.length || w.fx.stop(), A = void 0
  }, w.fx.timer = function (e) {
    w.timers.push(e), e() ? w.fx.start() : w.timers.pop()
  }, w.fx.interval = 13, w.fx.start = function () {
    ft = ft || setInterval(w.fx.tick, w.fx.interval)
  }, w.fx.stop = function () {
    clearInterval(ft), ft = null
  }, w.fx.speeds = {
    slow: 600,
    fast: 200,
    _default: 400
  }, w.fn.delay = function (r, e) {
    return r = w.fx && w.fx.speeds[r] || r, this.queue(e = e || "fx", function (e, t) {
      var n = setTimeout(e, r);
      t.stop = function () {
        clearTimeout(n)
      }
    })
  }, (a = y.createElement("div")).setAttribute("className", "t"), a.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", o = a.getElementsByTagName("a")[0], e = (u = y.createElement("select")).appendChild(y.createElement("option")), D = a.getElementsByTagName("input")[0], o.style.cssText = "top:1px", g.getSetAttribute = "t" !== a.className, g.style = /top/.test(o.getAttribute("style")), g.hrefNormalized = "/a" === o.getAttribute("href"), g.checkOn = !!D.value, g.optSelected = e.selected, g.enctype = !!y.createElement("form").enctype, u.disabled = !0, g.optDisabled = !e.disabled, (D = y.createElement("input")).setAttribute("value", ""), g.input = "" === D.getAttribute("value"), D.value = "t", D.setAttribute("type", "radio"), g.radioValue = "t" === D.value;
  var wt = /\r/g;
  w.fn.extend({
    val: function (t) {
      var n, e, r, i = this[0];
      return arguments.length ? (r = w.isFunction(t), this.each(function (e) {
        1 === this.nodeType && (null == (e = r ? t.call(this, e, w(this).val()) : t) ? e = "" : "number" == typeof e ? e += "" : w.isArray(e) && (e = w.map(e, function (e) {
          return null == e ? "" : e + ""
        })), (n = w.valHooks[this.type] || w.valHooks[this.nodeName.toLowerCase()]) && "set" in n && void 0 !== n.set(this, e, "value") || (this.value = e))
      })) : i ? (n = w.valHooks[i.type] || w.valHooks[i.nodeName.toLowerCase()]) && "get" in n && void 0 !== (e = n.get(i, "value")) ? e : "string" == typeof (e = i.value) ? e.replace(wt, "") : null == e ? "" : e : void 0
    }
  }), w.extend({
    valHooks: {
      option: {
        get: function (e) {
          var t = w.find.attr(e, "value");
          return null != t ? t : w.trim(w.text(e))
        }
      },
      select: {
        get: function (e) {
          for (var t, n = e.options, r = e.selectedIndex, i = "select-one" === e.type || r < 0, o = i ? null : [], a = i ? r + 1 : n.length, s = r < 0 ? a : i ? r : 0; s < a; s++)
            if (!(!(t = n[s]).selected && s !== r || (g.optDisabled ? t.disabled : null !== t.getAttribute("disabled")) || t.parentNode.disabled && w.nodeName(t.parentNode, "optgroup"))) {
              if (t = w(t).val(), i) return t;
              o.push(t)
            } return o
        },
        set: function (e, t) {
          for (var n, r, i = e.options, o = w.makeArray(t), a = i.length; a--;)
            if (r = i[a], 0 <= w.inArray(w.valHooks.option.get(r), o)) try {
              r.selected = n = !0
            } catch (e) {
              r.scrollHeight
            } else r.selected = !1;
          return n || (e.selectedIndex = -1), i
        }
      }
    }
  }), w.each(["radio", "checkbox"], function () {
    w.valHooks[this] = {
      set: function (e, t) {
        return w.isArray(t) ? e.checked = 0 <= w.inArray(w(e).val(), t) : void 0
      }
    }, g.checkOn || (w.valHooks[this].get = function (e) {
      return null === e.getAttribute("value") ? "on" : e.value
    })
  });
  var L, Tt, _ = w.expr.attrHandle,
    Ct = /^(?:checked|selected)$/i,
    H = g.getSetAttribute,
    Nt = g.input,
    Et = (w.fn.extend({
      attr: function (e, t) {
        return l(this, w.attr, e, t, 1 < arguments.length)
      },
      removeAttr: function (e) {
        return this.each(function () {
          w.removeAttr(this, e)
        })
      }
    }), w.extend({
      attr: function (e, t, n) {
        var r, i, o = e.nodeType;
        if (e && 3 !== o && 8 !== o && 2 !== o) return _typeof(e.getAttribute) === v ? w.prop(e, t, n) : (1 === o && w.isXMLDoc(e) || (t = t.toLowerCase(), r = w.attrHooks[t] || (w.expr.match.bool.test(t) ? Tt : L)), void 0 === n ? !(r && "get" in r && null !== (i = r.get(e, t))) && null == (i = w.find.attr(e, t)) ? void 0 : i : null !== n ? r && "set" in r && void 0 !== (i = r.set(e, n, t)) ? i : (e.setAttribute(t, n + ""), n) : void w.removeAttr(e, t))
      },
      removeAttr: function (e, t) {
        var n, r, i = 0,
          o = t && t.match(T);
        if (o && 1 === e.nodeType)
          for (; n = o[i++];) r = w.propFix[n] || n, w.expr.match.bool.test(n) ? Nt && H || !Ct.test(n) ? e[r] = !1 : e[w.camelCase("default-" + n)] = e[r] = !1 : w.attr(e, n, ""), e.removeAttribute(H ? n : r)
      },
      attrHooks: {
        type: {
          set: function (e, t) {
            var n;
            if (!g.radioValue && "radio" === t && w.nodeName(e, "input")) return n = e.value, e.setAttribute("type", t), n && (e.value = n), t
          }
        }
      }
    }), Tt = {
      set: function (e, t, n) {
        return !1 === t ? w.removeAttr(e, n) : Nt && H || !Ct.test(n) ? e.setAttribute(!H && w.propFix[n] || n, n) : e[w.camelCase("default-" + n)] = e[n] = !0, n
      }
    }, w.each(w.expr.match.bool.source.match(/\w+/g), function (e, t) {
      var o = _[t] || w.find.attr;
      _[t] = Nt && H || !Ct.test(t) ? function (e, t, n) {
        var r, i;
        return n || (i = _[t], _[t] = r, r = null != o(e, t, n) ? t.toLowerCase() : null, _[t] = i), r
      } : function (e, t, n) {
        return n ? void 0 : e[w.camelCase("default-" + t)] ? t.toLowerCase() : null
      }
    }), Nt && H || (w.attrHooks.value = {
      set: function (e, t, n) {
        return w.nodeName(e, "input") ? void(e.defaultValue = t) : L && L.set(e, t, n)
      }
    }), H || (L = {
      set: function (e, t, n) {
        var r = e.getAttributeNode(n);
        return r || e.setAttributeNode(r = e.ownerDocument.createAttribute(n)), r.value = t += "", "value" === n || t === e.getAttribute(n) ? t : void 0
      }
    }, _.id = _.name = _.coords = function (e, t, n) {
      return n ? void 0 : (n = e.getAttributeNode(t)) && "" !== n.value ? n.value : null
    }, w.valHooks.button = {
      get: function (e, t) {
        e = e.getAttributeNode(t);
        return e && e.specified ? e.value : void 0
      },
      set: L.set
    }, w.attrHooks.contenteditable = {
      set: function (e, t, n) {
        L.set(e, "" !== t && t, n)
      }
    }, w.each(["width", "height"], function (e, n) {
      w.attrHooks[n] = {
        set: function (e, t) {
          return "" === t ? (e.setAttribute(n, "auto"), t) : void 0
        }
      }
    })), g.style || (w.attrHooks.style = {
      get: function (e) {
        return e.style.cssText || void 0
      },
      set: function (e, t) {
        return e.style.cssText = t + ""
      }
    }), /^(?:input|select|textarea|button|object)$/i),
    kt = /^(?:a|area)$/i,
    St = (w.fn.extend({
      prop: function (e, t) {
        return l(this, w.prop, e, t, 1 < arguments.length)
      },
      removeProp: function (e) {
        return e = w.propFix[e] || e, this.each(function () {
          try {
            this[e] = void 0, delete this[e]
          } catch (e) {}
        })
      }
    }), w.extend({
      propFix: {
        for: "htmlFor",
        class: "className"
      },
      prop: function (e, t, n) {
        var r, i, o = e.nodeType;
        if (e && 3 !== o && 8 !== o && 2 !== o) return (1 !== o || !w.isXMLDoc(e)) && (t = w.propFix[t] || t, i = w.propHooks[t]), void 0 !== n ? i && "set" in i && void 0 !== (r = i.set(e, n, t)) ? r : e[t] = n : i && "get" in i && null !== (r = i.get(e, t)) ? r : e[t]
      },
      propHooks: {
        tabIndex: {
          get: function (e) {
            var t = w.find.attr(e, "tabindex");
            return t ? parseInt(t, 10) : Et.test(e.nodeName) || kt.test(e.nodeName) && e.href ? 0 : -1
          }
        }
      }
    }), g.hrefNormalized || w.each(["href", "src"], function (e, t) {
      w.propHooks[t] = {
        get: function (e) {
          return e.getAttribute(t, 4)
        }
      }
    }), g.optSelected || (w.propHooks.selected = {
      get: function (e) {
        e = e.parentNode;
        return e && (e.selectedIndex, e.parentNode) && e.parentNode.selectedIndex, null
      }
    }), w.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
      w.propFix[this.toLowerCase()] = this
    }), g.enctype || (w.propFix.enctype = "encoding"), /[\t\r\n\f]/g),
    At = (w.fn.extend({
      addClass: function (t) {
        var e, n, r, i, o, a, s = 0,
          l = this.length,
          u = "string" == typeof t && t;
        if (w.isFunction(t)) return this.each(function (e) {
          w(this).addClass(t.call(this, e, this.className))
        });
        if (u)
          for (e = (t || "").match(T) || []; s < l; s++)
            if (r = 1 === (n = this[s]).nodeType && (n.className ? (" " + n.className + " ").replace(St, " ") : " ")) {
              for (o = 0; i = e[o++];) r.indexOf(" " + i + " ") < 0 && (r += i + " ");
              a = w.trim(r), n.className !== a && (n.className = a)
            } return this
      },
      removeClass: function (t) {
        var e, n, r, i, o, a, s = 0,
          l = this.length,
          u = 0 === arguments.length || "string" == typeof t && t;
        if (w.isFunction(t)) return this.each(function (e) {
          w(this).removeClass(t.call(this, e, this.className))
        });
        if (u)
          for (e = (t || "").match(T) || []; s < l; s++)
            if (r = 1 === (n = this[s]).nodeType && (n.className ? (" " + n.className + " ").replace(St, " ") : "")) {
              for (o = 0; i = e[o++];)
                for (; 0 <= r.indexOf(" " + i + " ");) r = r.replace(" " + i + " ", " ");
              a = t ? w.trim(r) : "", n.className !== a && (n.className = a)
            } return this
      },
      toggleClass: function (i, t) {
        var o = _typeof(i);
        return "boolean" == typeof t && "string" === o ? t ? this.addClass(i) : this.removeClass(i) : this.each(w.isFunction(i) ? function (e) {
          w(this).toggleClass(i.call(this, e, this.className, t), t)
        } : function () {
          if ("string" === o)
            for (var e, t = 0, n = w(this), r = i.match(T) || []; e = r[t++];) n.hasClass(e) ? n.removeClass(e) : n.addClass(e);
          else o !== v && "boolean" !== o || (this.className && w._data(this, "__className__", this.className), this.className = !this.className && !1 !== i && w._data(this, "__className__") || "")
        })
      },
      hasClass: function (e) {
        for (var t = " " + e + " ", n = 0, r = this.length; n < r; n++)
          if (1 === this[n].nodeType && 0 <= (" " + this[n].className + " ").replace(St, " ").indexOf(t)) return !0;
        return !1
      }
    }), w.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (e, n) {
      w.fn[n] = function (e, t) {
        return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
      }
    }), w.fn.extend({
      hover: function (e, t) {
        return this.mouseenter(e).mouseleave(t || e)
      },
      bind: function (e, t, n) {
        return this.on(e, null, t, n)
      },
      unbind: function (e, t) {
        return this.off(e, null, t)
      },
      delegate: function (e, t, n, r) {
        return this.on(t, e, n, r)
      },
      undelegate: function (e, t, n) {
        return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", n)
      }
    }), w.now()),
    Dt = /\?/,
    jt = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
  w.parseJSON = function (e) {
    var i, o, t;
    return h.JSON && h.JSON.parse ? h.JSON.parse(e + "") : (o = null, (t = w.trim(e + "")) && !w.trim(t.replace(jt, function (e, t, n, r) {
      return 0 === (o = i && t ? 0 : o) ? e : (i = n || t, o += !r - !n, "")
    })) ? Function("return " + t)() : w.error("Invalid JSON: " + e))
  }, w.parseXML = function (e) {
    var t;
    if (!e || "string" != typeof e) return null;
    try {
      h.DOMParser ? t = (new DOMParser).parseFromString(e, "text/xml") : ((t = new ActiveXObject("Microsoft.XMLDOM")).async = "false", t.loadXML(e))
    } catch (e) {
      t = void 0
    }
    return t && t.documentElement && !t.getElementsByTagName("parsererror").length || w.error("Invalid XML: " + e), t
  };
  var q, M, Lt = /#.*$/,
    _t = /([?&])_=[^&]*/,
    Ht = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm,
    qt = /^(?:GET|HEAD)$/,
    Mt = /^\/\//,
    Ft = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,
    Ot = {},
    Bt = {},
    Pt = "*/".concat("*");
  try {
    M = location.href
  } catch (e) {
    (M = y.createElement("a")).href = "", M = M.href
  }

  function Rt(o) {
    return function (e, t) {
      "string" != typeof e && (t = e, e = "*");
      var n, r = 0,
        i = e.toLowerCase().match(T) || [];
      if (w.isFunction(t))
        for (; n = i[r++];) "+" === n.charAt(0) ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
    }
  }

  function Wt(t, r, i, o) {
    var a = {},
      s = t === Bt;

    function l(e) {
      var n;
      return a[e] = !0, w.each(t[e] || [], function (e, t) {
        t = t(r, i, o);
        return "string" != typeof t || s || a[t] ? s ? !(n = t) : void 0 : (r.dataTypes.unshift(t), l(t), !1)
      }), n
    }
    return l(r.dataTypes[0]) || !a["*"] && l("*")
  }

  function $t(e, t) {
    var n, r, i = w.ajaxSettings.flatOptions || {};
    for (r in t) void 0 !== t[r] && ((i[r] ? e : n = n || {})[r] = t[r]);
    return n && w.extend(!0, e, n), e
  }
  q = Ft.exec(M.toLowerCase()) || [], w.extend({
    active: 0,
    lastModified: {},
    etag: {},
    ajaxSettings: {
      url: M,
      type: "GET",
      isLocal: /^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(q[1]),
      global: !0,
      processData: !0,
      async: !0,
      contentType: "application/x-www-form-urlencoded; charset=UTF-8",
      accepts: {
        "*": Pt,
        text: "text/plain",
        html: "text/html",
        xml: "application/xml, text/xml",
        json: "application/json, text/javascript"
      },
      contents: {
        xml: /xml/,
        html: /html/,
        json: /json/
      },
      responseFields: {
        xml: "responseXML",
        text: "responseText",
        json: "responseJSON"
      },
      converters: {
        "* text": String,
        "text html": !0,
        "text json": w.parseJSON,
        "text xml": w.parseXML
      },
      flatOptions: {
        url: !0,
        context: !0
      }
    },
    ajaxSetup: function (e, t) {
      return t ? $t($t(e, w.ajaxSettings), t) : $t(w.ajaxSettings, e)
    },
    ajaxPrefilter: Rt(Ot),
    ajaxTransport: Rt(Bt),
    ajax: function (e, t) {
      "object" == _typeof(e) && (t = e, e = void 0);
      var n, l, u, c, d, f, r, p = w.ajaxSetup({}, t = t || {}),
        h = p.context || p,
        m = p.context && (h.nodeType || h.jquery) ? w(h) : w.event,
        g = w.Deferred(),
        y = w.Callbacks("once memory"),
        v = p.statusCode || {},
        i = {},
        o = {},
        b = 0,
        a = "canceled",
        x = {
          readyState: 0,
          getResponseHeader: function (e) {
            var t;
            if (2 === b) {
              if (!r)
                for (r = {}; t = Ht.exec(u);) r[t[1].toLowerCase()] = t[2];
              t = r[e.toLowerCase()]
            }
            return null == t ? null : t
          },
          getAllResponseHeaders: function () {
            return 2 === b ? u : null
          },
          setRequestHeader: function (e, t) {
            var n = e.toLowerCase();
            return b || (e = o[n] = o[n] || e, i[e] = t), this
          },
          overrideMimeType: function (e) {
            return b || (p.mimeType = e), this
          },
          statusCode: function (e) {
            if (e)
              if (b < 2)
                for (var t in e) v[t] = [v[t], e[t]];
              else x.always(e[x.status]);
            return this
          },
          abort: function (e) {
            e = e || a;
            return f && f.abort(e), s(0, e), this
          }
        };
      if (g.promise(x).complete = y.add, x.success = x.done, x.error = x.fail, p.url = ((e || p.url || M) + "").replace(Lt, "").replace(Mt, q[1] + "//"), p.type = t.method || t.type || p.method || p.type, p.dataTypes = w.trim(p.dataType || "*").toLowerCase().match(T) || [""], null == p.crossDomain && (e = Ft.exec(p.url.toLowerCase()), p.crossDomain = !(!e || e[1] === q[1] && e[2] === q[2] && (e[3] || ("http:" === e[1] ? "80" : "443")) === (q[3] || ("http:" === q[1] ? "80" : "443")))), p.data && p.processData && "string" != typeof p.data && (p.data = w.param(p.data, p.traditional)), Wt(Ot, p, t, x), 2 !== b) {
        for (n in (d = w.event && p.global) && 0 == w.active++ && w.event.trigger("ajaxStart"), p.type = p.type.toUpperCase(), p.hasContent = !qt.test(p.type), l = p.url, p.hasContent || (p.data && (l = p.url += (Dt.test(l) ? "&" : "?") + p.data, delete p.data), !1 === p.cache && (p.url = _t.test(l) ? l.replace(_t, "$1_=" + At++) : l + (Dt.test(l) ? "&" : "?") + "_=" + At++)), p.ifModified && (w.lastModified[l] && x.setRequestHeader("If-Modified-Since", w.lastModified[l]), w.etag[l]) && x.setRequestHeader("If-None-Match", w.etag[l]), (p.data && p.hasContent && !1 !== p.contentType || t.contentType) && x.setRequestHeader("Content-Type", p.contentType), x.setRequestHeader("Accept", p.dataTypes[0] && p.accepts[p.dataTypes[0]] ? p.accepts[p.dataTypes[0]] + ("*" !== p.dataTypes[0] ? ", " + Pt + "; q=0.01" : "") : p.accepts["*"]), p.headers) x.setRequestHeader(n, p.headers[n]);
        if (p.beforeSend && (!1 === p.beforeSend.call(h, x, p) || 2 === b)) return x.abort();
        for (n in a = "abort", {
            success: 1,
            error: 1,
            complete: 1
          }) x[n](p[n]);
        if (f = Wt(Bt, p, t, x)) {
          x.readyState = 1, d && m.trigger("ajaxSend", [x, p]), p.async && 0 < p.timeout && (c = setTimeout(function () {
            x.abort("timeout")
          }, p.timeout));
          try {
            b = 1, f.send(i, s)
          } catch (e) {
            if (!(b < 2)) throw e;
            s(-1, e)
          }
        } else s(-1, "No Transport")
      }
      return x;

      function s(e, t, n, r) {
        var i, o, a, s = t;
        2 !== b && (b = 2, c && clearTimeout(c), f = void 0, u = r || "", x.readyState = 0 < e ? 4 : 0, r = 200 <= e && e < 300 || 304 === e, n && (a = function (e, t, n) {
          for (var r, i, o, a, s = e.contents, l = e.dataTypes;
            "*" === l[0];) l.shift(), void 0 === i && (i = e.mimeType || t.getResponseHeader("Content-Type"));
          if (i)
            for (a in s)
              if (s[a] && s[a].test(i)) {
                l.unshift(a);
                break
              } if (l[0] in n) o = l[0];
          else {
            for (a in n) {
              if (!l[0] || e.converters[a + " " + l[0]]) {
                o = a;
                break
              }
              r = r || a
            }
            o = o || r
          }
          return o ? (o !== l[0] && l.unshift(o), n[o]) : void 0
        }(p, x, n)), a = function (e, t, n, r) {
          var i, o, a, s, l, u = {},
            c = e.dataTypes.slice();
          if (c[1])
            for (a in e.converters) u[a.toLowerCase()] = e.converters[a];
          for (o = c.shift(); o;)
            if (e.responseFields[o] && (n[e.responseFields[o]] = t), !l && r && e.dataFilter && (t = e.dataFilter(t, e.dataType)), l = o, o = c.shift())
              if ("*" === o) o = l;
              else if ("*" !== l && l !== o) {
            if (!(a = u[l + " " + o] || u["* " + o]))
              for (i in u)
                if (s = i.split(" "), s[1] === o && (a = u[l + " " + s[0]] || u["* " + s[0]])) {
                  !0 === a ? a = u[i] : !0 !== u[i] && (o = s[0], c.unshift(s[1]));
                  break
                } if (!0 !== a)
              if (a && e.throws) t = a(t);
              else try {
                t = a(t)
              } catch (e) {
                return {
                  state: "parsererror",
                  error: a ? e : "No conversion from " + l + " to " + o
                }
              }
          }
          return {
            state: "success",
            data: t
          }
        }(p, a, x, r), r ? (p.ifModified && ((n = x.getResponseHeader("Last-Modified")) && (w.lastModified[l] = n), n = x.getResponseHeader("etag")) && (w.etag[l] = n), 204 === e || "HEAD" === p.type ? s = "nocontent" : 304 === e ? s = "notmodified" : (s = a.state, i = a.data, r = !(o = a.error))) : (o = s, (e || !s) && (s = "error", e < 0) && (e = 0)), x.status = e, x.statusText = (t || s) + "", r ? g.resolveWith(h, [i, s, x]) : g.rejectWith(h, [x, s, o]), x.statusCode(v), v = void 0, d && m.trigger(r ? "ajaxSuccess" : "ajaxError", [x, p, r ? i : o]), y.fireWith(h, [x, s]), d) && (m.trigger("ajaxComplete", [x, p]), --w.active || w.event.trigger("ajaxStop"))
      }
    },
    getJSON: function (e, t, n) {
      return w.get(e, t, n, "json")
    },
    getScript: function (e, t) {
      return w.get(e, void 0, t, "script")
    }
  }), w.each(["get", "post"], function (e, i) {
    w[i] = function (e, t, n, r) {
      return w.isFunction(t) && (r = r || n, n = t, t = void 0), w.ajax({
        url: e,
        type: i,
        dataType: r,
        data: t,
        success: n
      })
    }
  }), w._evalUrl = function (e) {
    return w.ajax({
      url: e,
      type: "GET",
      dataType: "script",
      async: !1,
      global: !1,
      throws: !0
    })
  }, w.fn.extend({
    wrapAll: function (t) {
      var e;
      return w.isFunction(t) ? this.each(function (e) {
        w(this).wrapAll(t.call(this, e))
      }) : (this[0] && (e = w(t, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && e.insertBefore(this[0]), e.map(function () {
        for (var e = this; e.firstChild && 1 === e.firstChild.nodeType;) e = e.firstChild;
        return e
      }).append(this)), this)
    },
    wrapInner: function (n) {
      return this.each(w.isFunction(n) ? function (e) {
        w(this).wrapInner(n.call(this, e))
      } : function () {
        var e = w(this),
          t = e.contents();
        t.length ? t.wrapAll(n) : e.append(n)
      })
    },
    wrap: function (t) {
      var n = w.isFunction(t);
      return this.each(function (e) {
        w(this).wrapAll(n ? t.call(this, e) : t)
      })
    },
    unwrap: function () {
      return this.parent().each(function () {
        w.nodeName(this, "body") || w(this).replaceWith(this.childNodes)
      }).end()
    }
  }), w.expr.filters.hidden = function (e) {
    return e.offsetWidth <= 0 && e.offsetHeight <= 0 || !g.reliableHiddenOffsets() && "none" === (e.style && e.style.display || w.css(e, "display"))
  }, w.expr.filters.visible = function (e) {
    return !w.expr.filters.hidden(e)
  };
  var zt = /%20/g,
    It = /\[\]$/,
    Xt = /\r?\n/g,
    Ut = /^(?:submit|button|image|reset|file)$/i,
    Vt = /^(?:input|select|textarea|keygen)/i;
  w.param = function (e, t) {
    function n(e, t) {
      t = w.isFunction(t) ? t() : null == t ? "" : t, i[i.length] = encodeURIComponent(e) + "=" + encodeURIComponent(t)
    }
    var r, i = [];
    if (void 0 === t && (t = w.ajaxSettings && w.ajaxSettings.traditional), w.isArray(e) || e.jquery && !w.isPlainObject(e)) w.each(e, function () {
      n(this.name, this.value)
    });
    else
      for (r in e) ! function n(r, e, i, o) {
        if (w.isArray(e)) w.each(e, function (e, t) {
          i || It.test(r) ? o(r, t) : n(r + "[" + ("object" == _typeof(t) ? e : "") + "]", t, i, o)
        });
        else if (i || "object" !== w.type(e)) o(r, e);
        else
          for (var t in e) n(r + "[" + t + "]", e[t], i, o)
      }(r, e[r], t, n);
    return i.join("&").replace(zt, "+")
  }, w.fn.extend({
    serialize: function () {
      return w.param(this.serializeArray())
    },
    serializeArray: function () {
      return this.map(function () {
        var e = w.prop(this, "elements");
        return e ? w.makeArray(e) : this
      }).filter(function () {
        var e = this.type;
        return this.name && !w(this).is(":disabled") && Vt.test(this.nodeName) && !Ut.test(e) && (this.checked || !ue.test(e))
      }).map(function (e, t) {
        var n = w(this).val();
        return null == n ? null : w.isArray(n) ? w.map(n, function (e) {
          return {
            name: t.name,
            value: e.replace(Xt, "\r\n")
          }
        }) : {
          name: t.name,
          value: n.replace(Xt, "\r\n")
        }
      }).get()
    }
  }), w.ajaxSettings.xhr = void 0 !== h.ActiveXObject ? function () {
    return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && Gt() || function () {
      try {
        return new h.ActiveXObject("Microsoft.XMLHTTP")
      } catch (e) {}
    }()
  } : Gt;
  var Jt = 0,
    Yt = {},
    a = w.ajaxSettings.xhr();

  function Gt() {
    try {
      return new h.XMLHttpRequest
    } catch (e) {}
  }
  h.attachEvent && h.attachEvent("onunload", function () {
    for (var e in Yt) Yt[e](void 0, !0)
  }), g.cors = !!a && "withCredentials" in a, (g.ajax = !!a) && w.ajaxTransport(function (l) {
    var u;
    if (!l.crossDomain || g.cors) return {
      send: function (e, o) {
        var t, a = l.xhr(),
          s = ++Jt;
        if (a.open(l.type, l.url, l.async, l.username, l.password), l.xhrFields)
          for (t in l.xhrFields) a[t] = l.xhrFields[t];
        for (t in l.mimeType && a.overrideMimeType && a.overrideMimeType(l.mimeType), l.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"), e) void 0 !== e[t] && a.setRequestHeader(t, e[t] + "");
        a.send(l.hasContent && l.data || null), u = function (e, t) {
          var n, r, i;
          if (u && (t || 4 === a.readyState))
            if (delete Yt[s], u = void 0, a.onreadystatechange = w.noop, t) 4 !== a.readyState && a.abort();
            else {
              i = {}, n = a.status, "string" == typeof a.responseText && (i.text = a.responseText);
              try {
                r = a.statusText
              } catch (e) {
                r = ""
              }
              n || !l.isLocal || l.crossDomain ? 1223 === n && (n = 204) : n = i.text ? 200 : 404
            } i && o(n, r, i, a.getAllResponseHeaders())
        }, l.async ? 4 === a.readyState ? setTimeout(u) : a.onreadystatechange = Yt[s] = u : u()
      },
      abort: function () {
        u && u(void 0, !0)
      }
    }
  }), w.ajaxSetup({
    accepts: {
      script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
    },
    contents: {
      script: /(?:java|ecma)script/
    },
    converters: {
      "text script": function (e) {
        return w.globalEval(e), e
      }
    }
  }), w.ajaxPrefilter("script", function (e) {
    void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET", e.global = !1)
  }), w.ajaxTransport("script", function (t) {
    var r, i;
    if (t.crossDomain) return i = y.head || w("head")[0] || y.documentElement, {
      send: function (e, n) {
        (r = y.createElement("script")).async = !0, t.scriptCharset && (r.charset = t.scriptCharset), r.src = t.url, r.onload = r.onreadystatechange = function (e, t) {
          !t && r.readyState && !/loaded|complete/.test(r.readyState) || (r.onload = r.onreadystatechange = null, r.parentNode && r.parentNode.removeChild(r), r = null, t) || n(200, "success")
        }, i.insertBefore(r, i.firstChild)
      },
      abort: function () {
        r && r.onload(void 0, !0)
      }
    }
  });
  var Qt = [],
    Kt = /(=)\?(?=&|$)|\?\?/,
    Zt = (w.ajaxSetup({
      jsonp: "callback",
      jsonpCallback: function () {
        var e = Qt.pop() || w.expando + "_" + At++;
        return this[e] = !0, e
      }
    }), w.ajaxPrefilter("json jsonp", function (e, t, n) {
      var r, i, o, a = !1 !== e.jsonp && (Kt.test(e.url) ? "url" : "string" == typeof e.data && !(e.contentType || "").indexOf("application/x-www-form-urlencoded") && Kt.test(e.data) && "data");
      return a || "jsonp" === e.dataTypes[0] ? (r = e.jsonpCallback = w.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Kt, "$1" + r) : !1 !== e.jsonp && (e.url += (Dt.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function () {
        return o || w.error(r + " was not called"), o[0]
      }, e.dataTypes[0] = "json", i = h[r], h[r] = function () {
        o = arguments
      }, n.always(function () {
        h[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Qt.push(r)), o && w.isFunction(i) && i(o[0]), o = i = void 0
      }), "script") : void 0
    }), w.parseHTML = function (e, t, n) {
      if (!e || "string" != typeof e) return null;
      "boolean" == typeof t && (n = t, t = !1), t = t || y;
      var r = V.exec(e),
        n = !n && [];
      return r ? [t.createElement(r[1])] : (r = w.buildFragment([e], t, n), n && n.length && w(n).remove(), w.merge([], r.childNodes))
    }, w.fn.load),
    en = (w.fn.load = function (e, t, n) {
      var r, i, o, a, s;
      return "string" != typeof e && Zt ? Zt.apply(this, arguments) : (a = this, 0 <= (s = e.indexOf(" ")) && (r = w.trim(e.slice(s, e.length)), e = e.slice(0, s)), w.isFunction(t) ? (n = t, t = void 0) : t && "object" == _typeof(t) && (o = "POST"), 0 < a.length && w.ajax({
        url: e,
        type: o,
        dataType: "html",
        data: t
      }).done(function (e) {
        i = arguments, a.html(r ? w("<div>").append(w.parseHTML(e)).find(r) : e)
      }).complete(n && function (e, t) {
        a.each(n, i || [e.responseText, t, e])
      }), this)
    }, w.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (e, t) {
      w.fn[t] = function (e) {
        return this.on(t, e)
      }
    }), w.expr.filters.animated = function (t) {
      return w.grep(w.timers, function (e) {
        return t === e.elem
      }).length
    }, h.document.documentElement);

  function tn(e) {
    return w.isWindow(e) ? e : 9 === e.nodeType && (e.defaultView || e.parentWindow)
  }
  w.offset = {
    setOffset: function (e, t, n) {
      var r, i, o, a, s = w.css(e, "position"),
        l = w(e),
        u = {};
      "static" === s && (e.style.position = "relative"), o = l.offset(), r = w.css(e, "top"), a = w.css(e, "left"), s = ("absolute" === s || "fixed" === s) && -1 < w.inArray("auto", [r, a]) ? (i = (s = l.position()).top, s.left) : (i = parseFloat(r) || 0, parseFloat(a) || 0), null != (t = w.isFunction(t) ? t.call(e, n, o) : t).top && (u.top = t.top - o.top + i), null != t.left && (u.left = t.left - o.left + s), "using" in t ? t.using.call(e, u) : l.css(u)
    }
  }, w.fn.extend({
    offset: function (t) {
      var e, n, r, i;
      return arguments.length ? void 0 === t ? this : this.each(function (e) {
        w.offset.setOffset(this, t, e)
      }) : (n = {
        top: 0,
        left: 0
      }, (i = (r = this[0]) && r.ownerDocument) ? (e = i.documentElement, w.contains(e, r) ? (_typeof(r.getBoundingClientRect) !== v && (n = r.getBoundingClientRect()), r = tn(i), {
        top: n.top + (r.pageYOffset || e.scrollTop) - (e.clientTop || 0),
        left: n.left + (r.pageXOffset || e.scrollLeft) - (e.clientLeft || 0)
      }) : n) : void 0)
    },
    position: function () {
      var e, t, n, r;
      if (this[0]) return n = {
        top: 0,
        left: 0
      }, r = this[0], "fixed" === w.css(r, "position") ? t = r.getBoundingClientRect() : (e = this.offsetParent(), t = this.offset(), (n = w.nodeName(e[0], "html") ? n : e.offset()).top += w.css(e[0], "borderTopWidth", !0), n.left += w.css(e[0], "borderLeftWidth", !0)), {
        top: t.top - n.top - w.css(r, "marginTop", !0),
        left: t.left - n.left - w.css(r, "marginLeft", !0)
      }
    },
    offsetParent: function () {
      return this.map(function () {
        for (var e = this.offsetParent || en; e && !w.nodeName(e, "html") && "static" === w.css(e, "position");) e = e.offsetParent;
        return e || en
      })
    }
  }), w.each({
    scrollLeft: "pageXOffset",
    scrollTop: "pageYOffset"
  }, function (t, i) {
    var o = /Y/.test(i);
    w.fn[t] = function (e) {
      return l(this, function (e, t, n) {
        var r = tn(e);
        return void 0 === n ? r ? i in r ? r[i] : r.document.documentElement[t] : e[t] : void(r ? r.scrollTo(o ? w(r).scrollLeft() : n, o ? n : w(r).scrollTop()) : e[t] = n)
      }, t, e, arguments.length, null)
    }
  }), w.each(["top", "left"], function (e, n) {
    w.cssHooks[n] = Ke(g.pixelPosition, function (e, t) {
      return t ? (t = E(e, n), Ge.test(t) ? w(e).position()[n] + "px" : t) : void 0
    })
  }), w.each({
    Height: "height",
    Width: "width"
  }, function (o, a) {
    w.each({
      padding: "inner" + o,
      content: a,
      "": "outer" + o
    }, function (r, e) {
      w.fn[e] = function (e, t) {
        var n = arguments.length && (r || "boolean" != typeof e),
          i = r || (!0 === e || !0 === t ? "margin" : "border");
        return l(this, function (e, t, n) {
          var r;
          return w.isWindow(e) ? e.document.documentElement["client" + o] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + o], r["scroll" + o], e.body["offset" + o], r["offset" + o], r["client" + o])) : void 0 === n ? w.css(e, t, i) : w.style(e, t, n, i)
        }, a, n ? e : void 0, n, null)
      }
    })
  }), w.fn.size = function () {
    return this.length
  }, w.fn.andSelf = w.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () {
    return w
  });
  var nn = h.jQuery,
    rn = h.$;
  return w.noConflict = function (e) {
    return h.$ === w && (h.$ = rn), e && h.jQuery === w && (h.jQuery = nn), w
  }, _typeof(F) === v && (h.jQuery = h.$ = w), w
});

function _typeof(t) {
  return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) {
    return typeof t
  } : function (t) {
    return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t
  })(t)
}
$.tab = function (t, e, i, o, n) {
    var s = $(t);
    s.removeClass(i), $(t).eq(n).addClass(i), $(e).hide(), $(e).eq(n).show(), s.bind(o, function () {
      s.removeClass(i), $(this).addClass(i);
      var t = s.index(this);
      $(e).hide(), $(e).eq(t).show()
    })
  },
  function (rt) {
    rt.fn.slide = function (st) {
      return rt.fn.slide.defaults = {
        type: "slide",
        effect: "fade",
        autoPlay: !1,
        delayTime: 500,
        interTime: 2500,
        triggerTime: 150,
        defaultIndex: 0,
        titCell: ".hd li",
        mainCell: ".bd",
        targetCell: null,
        trigger: "mouseover",
        scroll: 1,
        vis: 1,
        titOnClassName: "on",
        autoPage: !1,
        prevCell: ".prev",
        nextCell: ".next",
        pageStateCell: ".pageState",
        opp: !1,
        pnLoop: !0,
        easing: "swing",
        startFun: null,
        endFun: null,
        switchLoad: null,
        playStateCell: ".playState",
        mouseOverStop: !0,
        defaultPlay: !0,
        returnDefault: !1
      }, this.each(function () {
        var e = rt.extend({}, rt.fn.slide.defaults, st),
          t = rt(this),
          s = e.effect,
          o = rt(e.prevCell, t),
          n = rt(e.nextCell, t),
          j = rt(e.pageStateCell, t),
          i = rt(e.playStateCell, t),
          r = (q = rt(e.titCell, t)).size(),
          a = rt(e.mainCell, t),
          l = a.children().size(),
          c = e.switchLoad,
          u = rt(e.targetCell, t),
          p = parseInt(e.defaultIndex),
          d = parseInt(e.delayTime),
          D = parseInt(e.interTime);
        parseInt(e.triggerTime);

        function L() {
          q.removeClass(E), v && q.eq(B).addClass(E)
        }
        var h, _ = parseInt(e.scroll),
          f = parseInt(e.vis),
          H = "false" != e.autoPlay && 0 != e.autoPlay,
          F = "false" != e.opp && 0 != e.opp,
          g = "false" != e.autoPage && 0 != e.autoPage,
          m = "false" != e.pnLoop && 0 != e.pnLoop,
          N = "false" != e.mouseOverStop && 0 != e.mouseOverStop,
          v = "false" != e.defaultPlay && 0 != e.defaultPlay,
          R = "false" != e.returnDefault && 0 != e.returnDefault,
          w = 0,
          y = 0,
          b = 0,
          C = 0,
          $ = e.easing,
          k = null,
          x = null,
          O = null,
          E = e.titOnClassName,
          T = q.index(t.find("." + E)),
          V = p = -1 == T ? p : T,
          B = p,
          I = p,
          M = f <= l ? 0 != l % _ ? l % _ : _ : 0,
          z = "leftMarquee" == s || "topMarquee" == s,
          W = function () {
            rt.isFunction(e.startFun) && e.startFun(p, r, t, rt(e.titCell, t), a, u, o, n)
          },
          S = function () {
            rt.isFunction(e.endFun) && e.endFun(p, r, t, rt(e.titCell, t), a, u, o, n)
          };
        if ("menu" == e.type) v && q.removeClass(E).eq(p).addClass(E), q.hover(function () {
          h = rt(this).find(e.targetCell);
          var t = q.index(rt(this));
          x = setTimeout(function () {
            switch (p = t, q.removeClass(E).eq(p).addClass(E), W(), s) {
              case "fade":
                h.stop(!0, !0).animate({
                  opacity: "show"
                }, d, $, S);
                break;
              case "slideDown":
                h.stop(!0, !0).animate({
                  height: "show"
                }, d, $, S)
            }
          }, e.triggerTime)
        }, function () {
          switch (clearTimeout(x), s) {
            case "fade":
              h.animate({
                opacity: "hide"
              }, d, $);
              break;
            case "slideDown":
              h.animate({
                height: "hide"
              }, d, $)
          }
        }), R && t.hover(function () {
          clearTimeout(O)
        }, function () {
          O = setTimeout(L, d)
        });
        else {
          if (0 == r && (r = l), z && (r = 2), g) {
            f <= l ? "leftLoop" == s || "topLoop" == s ? r = 0 != l % _ ? 1 + (0 ^ l / _) : l / _ : (T = l - f, (r = 1 + parseInt(0 != T % _ ? T / _ + 1 : T / _)) <= 0 && (r = 1)) : r = 1, q.html("");
            var Q = "";
            if (1 == e.autoPage || "true" == e.autoPage)
              for (var A = 0; A < r; A++) Q += "<li>" + (A + 1) + "</li>";
            else
              for (A = 0; A < r; A++) Q += e.autoPage.replace("$", A + 1);
            q.html(Q);
            var q = q.children()
          }
          if (f <= l) {
            a.children().each(function () {
              rt(this).width() > b && (b = rt(this).width(), y = rt(this).outerWidth(!0)), rt(this).height() > C && (C = rt(this).height(), w = rt(this).outerHeight(!0))
            });

            function U() {
              for (var t = 0; t < f; t++) G.eq(t).clone().addClass("clone").appendTo(a);
              for (t = 0; t < M; t++) G.eq(l - t - 1).clone().addClass("clone").prependTo(a)
            }
            var G = a.children();
            switch (s) {
              case "fold":
                a.css({
                  position: "relative",
                  width: y,
                  height: w
                }).children().css({
                  position: "absolute",
                  width: b,
                  left: 0,
                  top: 0,
                  display: "none"
                });
                break;
              case "top":
                a.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + f * w + 'px"></div>').css({
                  top: -p * _ * w,
                  position: "relative",
                  padding: "0",
                  margin: "0"
                }).children().css({
                  height: C
                });
                break;
              case "left":
                a.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + f * y + 'px"></div>').css({
                  width: l * y,
                  left: -p * _ * y,
                  position: "relative",
                  overflow: "hidden",
                  padding: "0",
                  margin: "0"
                }).children().css({
                  float: "left",
                  width: b
                });
                break;
              case "leftLoop":
              case "leftMarquee":
                U(), a.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + f * y + 'px"></div>').css({
                  width: (l + f + M) * y,
                  position: "relative",
                  overflow: "hidden",
                  padding: "0",
                  margin: "0",
                  left: -(M + p * _) * y
                }).children().css({
                  float: "left",
                  width: b
                });
                break;
              case "topLoop":
              case "topMarquee":
                U(), a.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + f * w + 'px"></div>').css({
                  height: (l + f + M) * w,
                  position: "relative",
                  padding: "0",
                  margin: "0",
                  top: -(M + p * _) * w
                }).children().css({
                  height: C
                })
            }
          }

          function Y() {
            !m && p == r - 1 || (p++, P(), z) || nt()
          }

          function X() {
            !m && 0 == p || (p--, P(), z) || nt()
          }

          function J() {
            clearInterval(k), (z ? ot : it)(), i.removeClass("pauseState")
          }

          function Z() {
            clearInterval(k), i.addClass("pauseState")
          }
          var K, tt = function (t) {
              var e = t * _;
              return t == r ? e = l : -1 == t && 0 != l % _ && (e = -l % _), e
            },
            et = function (i) {
              function t(t) {
                for (var e = t; e < f + t; e++) i.eq(e).find("img[" + c + "]").each(function () {
                  var t = rt(this);
                  if (t.attr("src", t.attr(c)).removeAttr(c), a.find(".clone")[0])
                    for (var e = a.children(), i = 0; i < e.size(); i++) e.eq(i).find("img[" + c + "]").each(function () {
                      rt(this).attr(c) == t.attr("src") && rt(this).attr("src", rt(this).attr(c)).removeAttr(c)
                    })
                })
              }
              switch (s) {
                case "fade":
                case "fold":
                case "top":
                case "left":
                case "slideDown":
                  t(p * _);
                  break;
                case "leftLoop":
                case "topLoop":
                  t(M + tt(I));
                  break;
                case "leftMarquee":
                case "topMarquee":
                  var e = ("leftMarquee" == s ? a.css("left") : a.css("top")).replace("px", ""),
                    o = "leftMarquee" == s ? y : w,
                    n = M;
                  0 != e % o && (e = Math.abs(0 ^ e / o), n = 1 == p ? M + e : M + e - 1), t(n)
              }
            },
            P = function (t) {
              if (!v || V != p || t || z) {
                if (z ? 1 <= p ? p = 1 : p <= 0 && (p = 0) : r <= (I = p) ? p = 0 : p < 0 && (p = r - 1), W(), null != c && et(a.children()), u[0] && (h = u.eq(p), null != c && et(u), "slideDown" == s ? (u.not(h).stop(!0, !0).slideUp(d), h.slideDown(d, $, function () {
                    a[0] || S()
                  })) : (u.not(h).stop(!0, !0).hide(), h.animate({
                    opacity: "show"
                  }, d, function () {
                    a[0] || S()
                  }))), f <= l) switch (s) {
                  case "fade":
                    a.children().stop(!0, !0).eq(p).animate({
                      opacity: "show"
                    }, d, $, function () {
                      S()
                    }).siblings().hide();
                    break;
                  case "fold":
                    a.children().stop(!0, !0).eq(p).animate({
                      opacity: "show"
                    }, d, $, function () {
                      S()
                    }).siblings().animate({
                      opacity: "hide"
                    }, d, $);
                    break;
                  case "top":
                    a.stop(!0, !1).animate({
                      top: -p * _ * w
                    }, d, $, function () {
                      S()
                    });
                    break;
                  case "left":
                    a.stop(!0, !1).animate({
                      left: -p * _ * y
                    }, d, $, function () {
                      S()
                    });
                    break;
                  case "leftLoop":
                    var e = I;
                    a.stop(!0, !0).animate({
                      left: -(tt(I) + M) * y
                    }, d, $, function () {
                      e <= -1 ? a.css("left", -(M + (r - 1) * _) * y) : r <= e && a.css("left", -M * y), S()
                    });
                    break;
                  case "topLoop":
                    e = I;
                    a.stop(!0, !0).animate({
                      top: -(tt(I) + M) * w
                    }, d, $, function () {
                      e <= -1 ? a.css("top", -(M + (r - 1) * _) * w) : r <= e && a.css("top", -M * w), S()
                    });
                    break;
                  case "leftMarquee":
                    var i = a.css("left").replace("px", "");
                    0 == p ? a.animate({
                      left: ++i
                    }, 0, function () {
                      0 <= a.css("left").replace("px", "") && a.css("left", -l * y)
                    }) : a.animate({
                      left: --i
                    }, 0, function () {
                      a.css("left").replace("px", "") <= -(l + M) * y && a.css("left", -M * y)
                    });
                    break;
                  case "topMarquee":
                    i = a.css("top").replace("px", "");
                    0 == p ? a.animate({
                      top: ++i
                    }, 0, function () {
                      0 <= a.css("top").replace("px", "") && a.css("top", -l * w)
                    }) : a.animate({
                      top: --i
                    }, 0, function () {
                      a.css("top").replace("px", "") <= -(l + M) * w && a.css("top", -M * w)
                    })
                }
                q.removeClass(E).eq(p).addClass(E), V = p, m || (n.removeClass("nextStop"), o.removeClass("prevStop"), 0 == p && o.addClass("prevStop"), p == r - 1 && n.addClass("nextStop")), j.html("<span>" + (p + 1) + "</span>/" + r)
              }
            },
            it = (v && P(!0), R && t.hover(function () {
              clearTimeout(O)
            }, function () {
              O = setTimeout(function () {
                p = B, v ? P() : "slideDown" == s ? h.slideUp(d, L) : h.animate({
                  opacity: "hide"
                }, d, L), V = p
              }, 300)
            }), function (t) {
              k = setInterval(function () {
                F ? p-- : p++, P()
              }, t || D)
            }),
            ot = function (t) {
              k = setInterval(P, t || D)
            },
            nt = function () {
              N || (clearInterval(k), it())
            };
          H ? z ? (F ? p-- : p++, ot(), N && a.hover(Z, J)) : (it(), N && t.hover(Z, J)) : (z && (F ? p-- : p++), i.addClass("pauseState")), i.click(function () {
            (i.hasClass("pauseState") ? J : Z)()
          }), "mouseover" == e.trigger ? q.hover(function () {
            var t = q.index(this);
            x = setTimeout(function () {
              p = t, P(), nt()
            }, e.triggerTime)
          }, function () {
            clearTimeout(x)
          }) : q.click(function () {
            p = q.index(this), P(), nt()
          }), z ? (n.mousedown(Y), o.mousedown(X), m && (g = function () {
            clearTimeout(K), clearInterval(k), ot()
          }, n.mousedown(T = function () {
            K = setTimeout(function () {
              clearInterval(k), ot(0 ^ D / 10)
            }, 150)
          }), n.mouseup(g), o.mousedown(T), o.mouseup(g)), "mouseover" == e.trigger && (n.hover(Y, function () {}), o.hover(X, function () {}))) : (n.click(Y), o.click(X))
        }
      })
    }
  }(jQuery), jQuery.easing.jswing = jQuery.easing.swing, jQuery.extend(jQuery.easing, {
    def: "easeOutQuad",
    swing: function (t, e, i, o, n) {
      return jQuery.easing[jQuery.easing.def](t, e, i, o, n)
    },
    easeInQuad: function (t, e, i, o, n) {
      return o * (e /= n) * e + i
    },
    easeOutQuad: function (t, e, i, o, n) {
      return -o * (e /= n) * (e - 2) + i
    },
    easeInOutQuad: function (t, e, i, o, n) {
      return (e /= n / 2) < 1 ? o / 2 * e * e + i : -o / 2 * (--e * (e - 2) - 1) + i
    },
    easeInCubic: function (t, e, i, o, n) {
      return o * (e /= n) * e * e + i
    },
    easeOutCubic: function (t, e, i, o, n) {
      return o * ((e = e / n - 1) * e * e + 1) + i
    },
    easeInOutCubic: function (t, e, i, o, n) {
      return (e /= n / 2) < 1 ? o / 2 * e * e * e + i : o / 2 * ((e -= 2) * e * e + 2) + i
    },
    easeInQuart: function (t, e, i, o, n) {
      return o * (e /= n) * e * e * e + i
    },
    easeOutQuart: function (t, e, i, o, n) {
      return -o * ((e = e / n - 1) * e * e * e - 1) + i
    },
    easeInOutQuart: function (t, e, i, o, n) {
      return (e /= n / 2) < 1 ? o / 2 * e * e * e * e + i : -o / 2 * ((e -= 2) * e * e * e - 2) + i
    },
    easeInQuint: function (t, e, i, o, n) {
      return o * (e /= n) * e * e * e * e + i
    },
    easeOutQuint: function (t, e, i, o, n) {
      return o * ((e = e / n - 1) * e * e * e * e + 1) + i
    },
    easeInOutQuint: function (t, e, i, o, n) {
      return (e /= n / 2) < 1 ? o / 2 * e * e * e * e * e + i : o / 2 * ((e -= 2) * e * e * e * e + 2) + i
    },
    easeInSine: function (t, e, i, o, n) {
      return -o * Math.cos(e / n * (Math.PI / 2)) + o + i
    },
    easeOutSine: function (t, e, i, o, n) {
      return o * Math.sin(e / n * (Math.PI / 2)) + i
    },
    easeInOutSine: function (t, e, i, o, n) {
      return -o / 2 * (Math.cos(Math.PI * e / n) - 1) + i
    },
    easeInExpo: function (t, e, i, o, n) {
      return 0 == e ? i : o * Math.pow(2, 10 * (e / n - 1)) + i
    },
    easeOutExpo: function (t, e, i, o, n) {
      return e == n ? i + o : o * (1 - Math.pow(2, -10 * e / n)) + i
    },
    easeInOutExpo: function (t, e, i, o, n) {
      return 0 == e ? i : e == n ? i + o : (e /= n / 2) < 1 ? o / 2 * Math.pow(2, 10 * (e - 1)) + i : o / 2 * (2 - Math.pow(2, -10 * --e)) + i
    },
    easeInCirc: function (t, e, i, o, n) {
      return -o * (Math.sqrt(1 - (e /= n) * e) - 1) + i
    },
    easeOutCirc: function (t, e, i, o, n) {
      return o * Math.sqrt(1 - (e = e / n - 1) * e) + i
    },
    easeInOutCirc: function (t, e, i, o, n) {
      return (e /= n / 2) < 1 ? -o / 2 * (Math.sqrt(1 - e * e) - 1) + i : o / 2 * (Math.sqrt(1 - (e -= 2) * e) + 1) + i
    },
    easeInElastic: function (t, e, i, o, n) {
      var s = 1.70158,
        r = 0,
        a = o;
      return 0 == e ? i : 1 == (e /= n) ? i + o : (r = r || .3 * n, s = a < Math.abs(o) ? (a = o, r / 4) : r / (2 * Math.PI) * Math.asin(o / a), -(a * Math.pow(2, 10 * --e) * Math.sin(2 * (e * n - s) * Math.PI / r)) + i)
    },
    easeOutElastic: function (t, e, i, o, n) {
      var s = 1.70158,
        r = 0,
        a = o;
      return 0 == e ? i : 1 == (e /= n) ? i + o : (r = r || .3 * n, s = a < Math.abs(o) ? (a = o, r / 4) : r / (2 * Math.PI) * Math.asin(o / a), a * Math.pow(2, -10 * e) * Math.sin(2 * (e * n - s) * Math.PI / r) + o + i)
    },
    easeInOutElastic: function (t, e, i, o, n) {
      var s = 1.70158,
        r = 0,
        a = o;
      return 0 == e ? i : 2 == (e /= n / 2) ? i + o : (r = r || .3 * n * 1.5, s = a < Math.abs(o) ? (a = o, r / 4) : r / (2 * Math.PI) * Math.asin(o / a), e < 1 ? -.5 * a * Math.pow(2, 10 * --e) * Math.sin(2 * (e * n - s) * Math.PI / r) + i : .5 * a * Math.pow(2, -10 * --e) * Math.sin(2 * (e * n - s) * Math.PI / r) + o + i)
    },
    easeInBack: function (t, e, i, o, n, s) {
      return o * (e /= n) * e * (((s = null == s ? 1.70158 : s) + 1) * e - s) + i
    },
    easeOutBack: function (t, e, i, o, n, s) {
      return o * ((e = e / n - 1) * e * (((s = null == s ? 1.70158 : s) + 1) * e + s) + 1) + i
    },
    easeInOutBack: function (t, e, i, o, n, s) {
      return null == s && (s = 1.70158), (e /= n / 2) < 1 ? o / 2 * e * e * ((1 + (s *= 1.525)) * e - s) + i : o / 2 * ((e -= 2) * e * ((1 + (s *= 1.525)) * e + s) + 2) + i
    },
    easeInBounce: function (t, e, i, o, n) {
      return o - jQuery.easing.easeOutBounce(t, n - e, 0, o, n) + i
    },
    easeOutBounce: function (t, e, i, o, n) {
      return (e /= n) < 1 / 2.75 ? 7.5625 * o * e * e + i : e < 2 / 2.75 ? o * (7.5625 * (e -= 1.5 / 2.75) * e + .75) + i : e < 2.5 / 2.75 ? o * (7.5625 * (e -= 2.25 / 2.75) * e + .9375) + i : o * (7.5625 * (e -= 2.625 / 2.75) * e + .984375) + i
    },
    easeInOutBounce: function (t, e, i, o, n) {
      return e < n / 2 ? .5 * jQuery.easing.easeInBounce(t, 2 * e, 0, o, n) + i : .5 * jQuery.easing.easeOutBounce(t, 2 * e - n, 0, o, n) + .5 * o + i
    }
  });
var Autofixed = function (o, n) {
  $(o).load(function () {
    var t = $(window).scrollTop(),
      e = $(window).height(),
      i = $(this).height() + 40;
    e < i && ($(n.node).css({
      position: "absolute",
      top: t
    }), $(o).contents().find("body").height(+e)), $(window).resize(function () {
      t = $(window).scrollTop(), (e = $(window).height()) < i ? $(n.node).css({
        position: "absolute",
        top: t
      }) : $(n.node).css("position", "fixed")
    })
  })
};
! function () {
  function t(t, e) {
    o[t] = e
  }
  var o = {};
  t("jquery", function () {
    return jQuery
  }), t("popup", function (t) {
    function n() {
      this.destroyed = !1, this.__popup = w("<div />").attr({
        tabindex: "-1"
      }).css({
        display: "none",
        position: "absolute",
        left: 0,
        top: 0,
        bottom: "auto",
        right: "auto",
        margin: 0,
        padding: 0,
        outline: 0,
        border: "0 none",
        background: "transparent"
      }).html(this.innerHTML).appendTo("body"), this.__backdrop = w("<div />"), this.node = this.__popup[0], this.backdrop = this.__backdrop[0], 0
    }
    var w = t("jquery"),
      o = !("minWidth" in w("html")[0].style),
      s = !o;
    return w.extend(n.prototype, {
      node: null,
      backdrop: null,
      fixed: !1,
      destroyed: !0,
      open: !1,
      returnValue: "",
      autofocus: !0,
      align: "bottom left",
      backdropBackground: "#000",
      backdropOpacity: .4,
      innerHTML: "",
      className: "ui-popup",
      show: function (t) {
        var e, i;
        return this.destroyed || (i = (e = this).__popup, this.__activeElement = this.__getActive(), this.open = !0, this.follow = t || this.follow, this.__ready || (i.addClass(this.className), this.modal && this.__lock(), i.html() || i.html(this.innerHTML), o || w(window).on("resize", this.__onresize = function () {
          e.reset()
        }), this.__ready = !0), i.addClass(this.className + "-show").attr("role", this.modal ? "alertdialog" : "dialog").css("position", this.fixed ? "fixed" : "absolute").show(), this.__backdrop.show(), this.reset().focus(), this.__dispatchEvent("show")), this
      },
      showModal: function () {
        return this.modal = !0, this.show.apply(this, arguments)
      },
      close: function (t) {
        return !this.destroyed && this.open && (void 0 !== t && (this.returnValue = t), this.__popup.hide().removeClass(this.className + "-show"), this.__backdrop.hide(), this.open = !1, this.blur(), this.__dispatchEvent("close")), this
      },
      remove: function () {
        if (!this.destroyed)
          for (var t in this.__dispatchEvent("beforeremove"), n.current === this && (n.current = null), this.__unlock(), this.__popup.remove(), this.__backdrop.remove(), this.blur(), o || w(window).off("resize", this.__onresize), this.__dispatchEvent("remove"), this) delete this[t];
        return this
      },
      reset: function () {
        var t = this.follow;
        return t ? this.__follow(t) : this.__center(), this.__dispatchEvent("reset"), this
      },
      focus: function () {
        var t = this.node,
          e = n.current;
        return e && e !== this && e.blur(!1), w.contains(t, this.__getActive()) || (e = this.__popup.find("[autofocus]")[0], !this._autofocus && e ? this._autofocus = !0 : e = t, this.__focus(e)), (n.current = this).__popup.addClass(this.className + "-focus"), this.__zIndex(), this.__dispatchEvent("focus"), this
      },
      blur: function () {
        var t = this.__activeElement;
        return !1 !== arguments[0] && this.__focus(t), this._autofocus = !1, this.__popup.removeClass(this.className + "-focus"), this.__dispatchEvent("blur"), this
      },
      addEventListener: function (t, e) {
        return this.__getEventListener(t).push(e), this
      },
      removeEventListener: function (t, e) {
        for (var i = this.__getEventListener(t), o = 0; o < i.length; o++) e === i[o] && i.splice(o--, 1);
        return this
      },
      __getEventListener: function (t) {
        var e = this.__listener;
        return (e = e || (this.__listener = {}))[t] || (e[t] = []), e[t]
      },
      __dispatchEvent: function (t) {
        var e = this.__getEventListener(t);
        this["on" + t] && this["on" + t]();
        for (var i = 0; i < e.length; i++) e[i].call(this)
      },
      __focus: function (t) {
        try {
          this.autofocus && !/^iframe$/i.test(t.nodeName) && t.focus()
        } catch (t) {}
      },
      __getActive: function () {
        try {
          var t = document.activeElement,
            e = t.contentDocument;
          return e && e.activeElement || t
        } catch (t) {}
      },
      __zIndex: function () {
        var t = n.zIndex++;
        this.__popup.css("zIndex", t), this.__backdrop.css("zIndex", t - 1), this.zIndex = t
      },
      __center: function () {
        var t = this.__popup,
          e = w(window),
          i = w(document),
          o = this.fixed,
          n = o ? 0 : i.scrollLeft(),
          o = o ? 0 : i.scrollTop(),
          i = e.width(),
          e = e.height(),
          s = t.width(),
          e = 382 * (e - t.height()) / 1e3 + o,
          t = t[0].style;
        t.left = Math.max(parseInt((i - s) / 2 + n), n) + "px", t.top = Math.max(parseInt(e), o) + "px"
      },
      __follow: function (t) {
        var e = t.parentNode && w(t),
          i = this.__popup;
        if (this.__followSkin && i.removeClass(this.__followSkin), e) {
          var o = e.offset();
          if (o.left * o.top < 0) return this.__center()
        }
        var o = this.fixed,
          n = w(window),
          s = w(document),
          r = n.width(),
          n = n.height(),
          a = s.scrollLeft(),
          s = s.scrollTop(),
          l = i.width(),
          c = i.height(),
          u = e ? e.outerWidth() : 0,
          p = e ? e.outerHeight() : 0,
          t = this.__offset(t),
          d = t.left,
          t = t.top,
          d = o ? d - a : d,
          t = o ? t - s : t,
          a = o ? 0 : a,
          o = o ? 0 : s,
          s = a + r - l,
          r = o + n - c,
          n = {},
          h = this.align.split(" "),
          _ = this.className + "-",
          f = {
            top: "bottom",
            bottom: "top",
            left: "right",
            right: "left"
          },
          g = {
            top: "top",
            bottom: "top",
            left: "left",
            right: "left"
          },
          m = [{
            top: t - c,
            bottom: t + p,
            left: d - l,
            right: d + u
          }, {
            top: t,
            bottom: t - c + p,
            left: d,
            right: d - l + u
          }],
          d = {
            left: d + u / 2 - l / 2,
            top: t + p / 2 - c / 2
          },
          v = {
            left: [a, s],
            top: [o, r]
          };
        w.each(h, function (t, e) {
          m[t][e] > v[g[e]][1] && (e = h[t] = f[e]), m[t][e] < v[g[e]][0] && (h[t] = f[e])
        }), h[1] || (g[h[1]] = "left" === g[h[0]] ? "top" : "left", m[1][h[1]] = d[g[h[1]]]), _ += h.join("-"), this.__followSkin = _, e && i.addClass(_), n[g[h[0]]] = parseInt(m[0][h[0]]), n[g[h[1]]] = parseInt(m[1][h[1]]), i.css(n)
      },
      __offset: function (t) {
        var e, i, o = t.parentNode,
          n = o ? w(t).offset() : {
            left: t.pageX,
            top: t.pageY
          },
          o = (t = o ? t : t.target).ownerDocument,
          t = o.defaultView || o.parentWindow;
        return t == window ? n : (t = t.frameElement, e = (o = w(o)).scrollLeft(), o = o.scrollTop(), i = (t = w(t).offset()).left, t = t.top, {
          left: n.left + i - e,
          top: n.top + t - o
        })
      },
      __lock: function () {
        var t = this,
          e = this.__popup,
          i = this.__backdrop,
          o = {
            position: "fixed",
            left: 0,
            top: 0,
            width: "100%",
            height: "100%",
            overflow: "hidden",
            userSelect: "none",
            opacity: 0,
            background: this.backdropBackground
          };
        e.addClass(this.className + "-modal"), n.zIndex = n.zIndex + 2, this.__zIndex(), s || w.extend(o, {
          position: "absolute",
          width: w(window).width() + "px",
          height: w(document).height() + "px"
        }), i.css(o).animate({
          opacity: this.backdropOpacity
        }, 150).insertAfter(e).attr({
          tabindex: "0"
        }).on("focus", function () {
          t.focus()
        })
      },
      __unlock: function () {
        this.modal && (this.__popup.removeClass(this.className + "-modal"), this.__backdrop.remove(), delete this.modal)
      }
    }), n.zIndex = 1024, n.current = null, n
  }), t("dialog-config", {
    content: '<span class="ui-dialog-loading">Loading..</span>',
    title: "",
    statusbar: "",
    button: null,
    ok: null,
    cancel: null,
    okValue: "ok",
    cancelValue: "cancel",
    cancelDisplay: !0,
    width: "",
    height: "",
    padding: "",
    skin: "",
    quickClose: !1,
    cssUri: "../css/ui-dialog.css",
    innerHTML: '<div i="dialog" class="ui-dialog"><div class="ui-dialog-arrow-a"></div><div class="ui-dialog-arrow-b"></div><table class="ui-dialog-grid"><tr><td i="header" class="ui-dialog-header"><img src="//static.banksteel.com/v6/images/fl_zs_close.png" width="13" height="13" class="ui-dialog-close" i="close"><div i="title" class="ui-dialog-title"></div></td></tr><tr><td i="body" class="ui-dialog-body"><div i="content" class="ui-dialog-content"></div></td></tr><tr><td i="footer" class="ui-dialog-footer"><div i="statusbar" class="ui-dialog-statusbar"></div><div i="button" class="ui-dialog-button"></div></td></tr></table></div>'
  }), t("dialog", function (t) {
    function r(t, e, i) {
      var o = t = t || {},
        n = ("string" != typeof t && 1 !== t.nodeType || (t = {
          content: t,
          fixed: !u
        }), (t = a.extend(!0, {}, r.defaults, t))._ = o, t.id = t.id || c + l),
        s = r.get(n);
      return s ? s.focus() : (p || (t.fixed = !1), t.quickClose && (t.modal = !0, o.backdropOpacity || (t.backdropOpacity = 0)), a.isArray(t.button) || (t.button = []), void 0 !== e && (t.ok = e), t.ok && t.button.push({
        id: "ok",
        value: t.okValue,
        callback: t.ok,
        autofocus: !0
      }), void 0 !== i && (t.cancel = i), t.cancel && t.button.push({
        id: "cancel",
        value: t.cancelValue,
        callback: t.cancel,
        display: t.cancelDisplay
      }), r.list[n] = new r.create(t))
    }

    function e() {}
    var a = t("jquery"),
      s = t("popup"),
      i = t("dialog-config"),
      o = i.cssUri,
      l = (o && (t = t[t.toUrl ? "toUrl" : "resolve"]) && (o = '<link rel="stylesheet" href="' + t(o) + '" />', a("base")[0] ? a("base").before(o) : a("head").append(o)), 0),
      c = +new Date,
      t = !("minWidth" in a("html")[0].style),
      u = "createTouch" in document && !("onmousemove" in document) || /(iPhone|iPad|iPod)/i.test(navigator.userAgent),
      p = !t && !u,
      o = (e.prototype = s.prototype, r.prototype = new e);
    return (r.create = function (t) {
      var n = this,
        e = (a.extend(this, new s), a(this.node).html(t.innerHTML));
      return this.options = t, this._popup = e, a.each(t, function (t, e) {
        "function" == typeof n[t] ? n[t](e) : n[t] = e
      }), t.zIndex && (s.zIndex = t.zIndex), e.attr({
        "aria-labelledby": this._$("title").attr("id", "title:" + this.id).attr("id"),
        "aria-describedby": this._$("content").attr("id", "content:" + this.id).attr("id")
      }), this._$("close").css("display", !1 === this.cancel ? "none" : "").attr("title", this.cancelValue).on("click", function (t) {
        n._trigger("cancel"), t.preventDefault()
      }), this._$("dialog").addClass(this.skin), this._$("body").css("padding", this.padding), e.on("click", "[data-id]", function (t) {
        var e = a(this);
        e.attr("disabled") || n._trigger(e.data("id")), t.preventDefault()
      }), t.quickClose && a(this.backdrop).on("onmousedown" in document ? "mousedown" : "click", function () {
        n._trigger("cancel")
      }), this._esc = function (t) {
        var e = t.target,
          i = e.nodeName,
          o = s.current === n,
          t = t.keyCode;
        !o || /^input|textarea$/i.test(i) && "button" !== e.type || 27 === t && n._trigger("cancel")
      }, a(document).on("keydown", this._esc), this.addEventListener("remove", function () {
        a(document).off("keydown", this._esc), delete r.list[this.id]
      }), l++, r.oncreate(this), this
    }).prototype = o, a.extend(o, {
      content: function (t) {
        return this._$("content").empty("")["object" == _typeof(t) ? "append" : "html"](t), this.reset()
      },
      title: function (t) {
        return this._$("title").text(t), this._$("header")[t ? "show" : "hide"](), this
      },
      width: function (t) {
        return this._$("content").css("width", t), this.reset()
      },
      height: function (t) {
        return this._$("content").css("height", t), this.reset()
      },
      button: function (t) {
        t = t || [];
        var o = this,
          n = "",
          s = 0;
        return this.callbacks = {}, "string" == typeof t ? n = t : a.each(t, function (t, e) {
          e.id = e.id || e.value, o.callbacks[e.id] = e.callback;
          var i = "";
          !1 === e.display ? i = ' style="display:none"' : s++, n += '<button type="button" data-id="' + e.id + '"' + i + (e.disabled ? " disabled" : "") + (e.autofocus ? ' autofocus class="ui-dialog-autofocus"' : "") + ">" + e.value + "</button>"
        }), this._$("footer")[s ? "show" : "hide"](), this._$("button").html(n), this
      },
      statusbar: function (t) {
        return this._$("statusbar").html(t)[t ? "show" : "hide"](), this
      },
      _$: function (t) {
        return this._popup.find("[i=" + t + "]")
      },
      _trigger: function (t) {
        t = this.callbacks[t];
        return "function" != typeof t || !1 !== t.call(this) ? this.close().remove() : this
      }
    }), r.oncreate = a.noop, r.getCurrent = function () {
      return s.current
    }, r.get = function (t) {
      return void 0 === t ? r.list : r.list[t]
    }, r.list = {}, r.defaults = i, r
  }), t("drag", function (t) {
    function n() {
      this.start = s.proxy(this.start, this), this.over = s.proxy(this.over, this), this.end = s.proxy(this.end, this), this.onstart = this.onover = this.onend = s.noop
    }
    var s = t("jquery"),
      _ = s(window),
      f = s(document),
      t = "createTouch" in document,
      e = document.documentElement,
      i = !!("minWidth" in e.style) && "onlosecapture" in e,
      o = "setCapture" in e,
      r = {
        start: t ? "touchstart" : "mousedown",
        over: t ? "touchmove" : "mousemove",
        end: t ? "touchend" : "mouseup"
      },
      a = t ? function (t) {
        return t = t.touches ? t : t.originalEvent.touches.item(0)
      } : function (t) {
        return t
      };
    return n.types = r, n.prototype = {
      start: function (t) {
        return t = this.startFix(t), f.on(r.over, this.over).on(r.end, this.end), this.onstart(t), !1
      },
      over: function (t) {
        return t = this.overFix(t), this.onover(t), !1
      },
      end: function (t) {
        return t = this.endFix(t), f.off(r.over, this.over).off(r.end, this.end), this.onend(t), !1
      },
      startFix: function (t) {
        return t = a(t), this.target = s(t.target), this.selectstart = function () {
          return !1
        }, f.on("selectstart", this.selectstart).on("dblclick", this.end), i ? this.target.on("losecapture", this.end) : _.on("blur", this.end), o && this.target[0].setCapture(), t
      },
      overFix: function (t) {
        return a(t)
      },
      endFix: function (t) {
        return t = a(t), f.off("selectstart", this.selectstart).off("dblclick", this.end), i ? this.target.off("losecapture", this.end) : _.off("blur", this.end), o && this.target[0].releaseCapture(), t
      }
    }, n.create = function (r, t) {
      function e() {}
      var a, l, c, u, p = s(r),
        i = new n,
        o = n.types.start,
        d = r.className.replace(/^\s|\s.*/g, "") + "-drag-start",
        h = {
          onstart: e,
          onover: e,
          onend: e,
          off: function () {
            p.off(o, i.start)
          }
        };
      return i.onstart = function (t) {
        var e = "fixed" === p.css("position"),
          i = f.scrollLeft(),
          o = f.scrollTop(),
          n = p.width(),
          s = p.height(),
          n = (l = a = 0, c = e ? _.width() - n + a : f.width() - n, u = e ? _.height() - s + l : f.height() - s, p.offset()),
          s = this.startLeft = e ? n.left - i : n.left,
          i = this.startTop = e ? n.top - o : n.top;
        this.clientX = t.clientX, this.clientY = t.clientY, p.addClass(d), h.onstart.call(r, t, s, i)
      }, i.onover = function (t) {
        var e = t.clientX - this.clientX + this.startLeft,
          i = t.clientY - this.clientY + this.startTop,
          o = p[0].style,
          e = Math.max(a, Math.min(c, e)),
          i = Math.max(l, Math.min(u, i));
        o.left = e + "px", o.top = i + "px", h.onover.call(r, t, e, i)
      }, i.onend = function (t) {
        var e = p.position(),
          i = e.left,
          e = e.top;
        p.removeClass(d), h.onend.call(r, t, i, e)
      }, i.off = function () {
        p.off(o, i.start)
      }, t ? i.start(t) : p.on(o, i.start), h
    }, n
  }), t("dialog-plus", function (t) {
    var l = t("jquery"),
      s = t("dialog"),
      c = t("drag");
    return s.oncreate = function (e) {
      var i, o = e.options,
        t = o._,
        n = o.url,
        s = o.oniframeload;
      if (n && (this.padding = o.padding = 0, (i = l("<iframe />")).attr({
          src: n,
          name: e.id,
          id: e.id,
          width: "100%",
          height: "100%",
          allowtransparency: "yes",
          frameborder: "no",
          scrolling: "no"
        }).on("load", function () {
          var t;
          try {
            t = i[0].contentWindow.frameElement
          } catch (t) {}
          t && (o.width || e.width(i.contents().width()), o.height || e.height(i.contents().height())), s && s.call(e)
        }), e.addEventListener("beforeremove", function () {
          i.attr("src", "about:blank").remove()
        }, !1), e.content(i[0]), e.iframeNode = i[0]), !(t instanceof Object)) {
        function r() {
          e.close().remove()
        }
        for (var a = 0; a < frames.length; a++) try {
          if (t instanceof frames[a].Object) {
            l(frames[a]).one("unload", r);
            break
          }
        } catch (t) {}
      }
      l(e.node).on(c.types.start, "[i=title]", function (t) {
        e.follow || (e.focus(), c.create(e.node, t))
      })
    }, s.get = function (t) {
      if (t && t.frameElement) {
        var e, i, o = t.frameElement,
          n = s.list;
        for (i in n)
          if (e = n[i], e.node.getElementsByTagName("iframe")[0] === o) return e
      } else if (t) return s.list[t]
    }, s
  }), window.dialog = function t(e) {
    var e = o[e],
      i = "exports";
    return "object" == _typeof(e) ? e : (e[i] || (e[i] = {}, e[i] = e.call(e[i], t, e[i], e) || e[i]), e[i])
  }("dialog-plus")
}(),
function (d, u) {
  "use strict";

  function o(t, e) {
    return !this instanceof o ? new o(t, e) : (this.$el = d(t), this._init(t, e), u)
  }

  function r(t, e) {
    var i = e ? !0 === e ? this : e : r.prototype;
    if (f(t))
      for (var o in t) i[o] = c(t[o])
  }

  function a(t, e) {
    var i = e ? !0 === e ? this : e : a.prototype;
    if (f(t))
      for (var o in t) {
        if (!t[o]) return;
        i[o] = t[o]
      }
  }

  function c(e) {
    switch (d.type(e)) {
      case "function":
        return e;
      case "array":
        return function (t) {
          return e[0].test(t.value) || e[1] || !1
        };
      case "regexp":
        return function (t) {
          return e.test(t.value)
        }
    }
  }

  function n(t) {
    var e;
    if (t && t.tagName) {
      switch (t.tagName) {
        case "INPUT":
        case "SELECT":
        case "TEXTAREA":
        case "BUTTON":
        case "FIELDSET":
          e = t.form || d(t).closest("." + $);
          break;
        case "FORM":
          e = t;
          break;
        default:
          e = d(t).closest("." + $)
      }
      return d(e).data(w) || d(e)[w]().data(w)
    }
  }

  function s(t) {
    var e, i = t.currentTarget;
    i.form && null === g(i.form, z) && ((e = n(i)) ? (e._parse(i), e["_" + t.type](t)) : g(i, E, null))
  }

  function p(t, e, i, o) {
    var n = e.msg,
      e = e._r;
    return f(n) && (n = n[e]), n = _(n) ? n : g(t, T + "-" + e) || g(t, T) || i || (o ? _(o) ? o : o[e] : "")
  }

  function l(t) {
    return "INPUT" === t.tagName && "checkbox" === t.type || "radio" === t.type
  }

  function h(t) {
    return Date.parse(t.replace(/\.|\-/g, "/"))
  }

  function _(t) {
    return "string" == typeof t
  }

  function f(t) {
    return t && "[object Object]" === Object.prototype.toString.call(t)
  }

  function g(t, e, i) {
    return i === u ? t.getAttribute(e) : (null === i ? t.removeAttribute(e) : t.setAttribute(e, "" + i), u)
  }
  var m, v, w = "validator",
    y = "." + w,
    b = ".rule",
    C = ".field",
    $ = "nice-" + w,
    k = "msg-box",
    x = "aria-required",
    O = "aria-invalid",
    E = "data-rule",
    T = "data-msg",
    I = "data-tip",
    H = "data-ok",
    F = "data-target",
    M = "data-inputstatus",
    z = "novalidate",
    S = ":verifiable",
    N = /(!?)\s?(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?\s*(;|\||&)?/g,
    R = /(\w+)(?:\[\s*(.*?\]?)\s*\]|\(\s*(.*?\)?)\s*\))?/,
    V = /(?:([^:;\(\[]*):)?(.*)/,
    i = /[^\x00-\xff]/g,
    B = /^.*(top|right|bottom|left).*$/,
    W = /(?:(post|get):)?(.+)/i,
    Q = /<|>/g,
    A = d.noop,
    q = d.proxy,
    P = d.isFunction,
    U = d.isArray,
    G = !window.XMLHttpRequest,
    j = window.console || {
      log: A,
      info: A
    },
    D = {
      debug: 0,
      timely: 1,
      theme: "default",
      ignore: "",
      focusInvalid: !0,
      beforeSubmit: A,
      validClass: "n-valid",
      invalidClass: "n-invalid",
      msgWrapper: "span",
      msgMaker: function (t) {
        var e = '<span class="msg-wrap ' + {
          error: "n-error",
          ok: "n-ok",
          tip: "n-tip",
          loading: "n-loading"
        } [t.type] + '" role="alert">';
        return (e += t.arrow + t.icon + '<span class="n-msg">' + t.msg + "</span>") + "</span>"
      },
      msgIcon: '<span class="n-icon"></span>',
      msgArrow: "",
      msgClass: "",
      defaultMsg: "{0} is not valid.",
      loadingMsg: "Validating..."
    },
    L = {
      default: {
        formClass: "n-default",
        msgClass: "n-right",
        showOk: ""
      }
    };
  d.fn[w] = function (e) {
    var t = this,
      i = arguments;
    return t.is(":input") ? t : ((t = (t = t.is("form") ? t : this.find("form")).length ? t : this).each(function () {
      var t = d(this).data(w);
      t ? _(e) ? "_" !== e.charAt(0) && t[e].apply(t, Array.prototype.slice.call(i, 1)) : e && (t._reset(!0), t._init(this, e)) : new o(this, e)
    }), this)
  }, d.fn.isValid = function (e, t) {
    var i = n(this[0]),
      o = P(e);
    return !i || (i.checkOnly = !t, t = i._multiValidate(this.is(":input") ? this : this.find(S), function (t) {
      o && e.call(null, t), i.checkOnly = !1
    }), o ? this : t)
  }, d.expr[":"].verifiable = function (t) {
    var e = t.nodeName.toLowerCase();
    return ("input" === e && !{
      submit: 1,
      button: 1,
      reset: 1,
      image: 1
    } [t.type] || "select" === e || "textarea" === e) && !1 === t.disabled
  }, o.prototype = {
    _init: function (t, e) {
      var i, o, n, s = this;
      e = (e = P(e) ? {
        valid: e
      } : e) || {}, o = (o = g(t, "data-" + w + "-option")) && "{" === o.charAt(0) ? Function("return " + o)() : {}, i = L[e.theme || o.theme || D.theme], i = s.options = d.extend({}, D, i, o, s.options, e), s.rules = new r(i.rules, !0), s.messages = new a(i.messages, !0), s.elements = s.elements || {}, s.deferred = {}, s.errors = {}, s.fields = {}, s._initFields(i.fields), U(i.groups) && d.map(i.groups, function (e) {
        return _(e.fields) && P(e.callback) ? (e.$elems = s.$el.find((t = e.fields, i = "", d.map(t.split(" "), function (t) {
          i += "," + ("#" === t.charAt(0) ? t : '[name="' + t + '"]')
        }), i.substring(1))), d.map(e.fields.split(" "), function (t) {
          s.fields[t] = s.fields[t] || {}, s.fields[t].group = e
        }), u) : null;
        var t, i
      }), s.msgOpt = {
        type: "error",
        pos: (o = i.msgClass, (n = o ? B.exec(o) : n) ? n[1] : ""),
        wrapper: i.msgWrapper,
        cls: i.msgClass,
        style: i.msgStyle,
        icon: i.msgIcon,
        arrow: i.msgArrow,
        show: i.msgShow,
        hide: i.msgHide
      }, s.isAjaxSubmit = !1, (i.valid || !d.trim(g(t, "action")) || (e = d[d._data ? "_data" : "data"](t, "events")) && e.valid && d.map(e.valid, function (t) {
        return -1 !== t.namespace.indexOf("form") ? 1 : null
      }).length) && (s.isAjaxSubmit = !0), s.$el.data(w) || (s.$el.data(w, s).addClass($ + " " + i.formClass).on("submit" + y + " validate" + y, q(s, "_submit")).on("reset" + y, q(s, "_reset")).on("showtip" + y, q(s, "_showTip")).on("validated" + C + y, S, q(s, "_validatedField")).on("validated" + b + y, S, q(s, "_validatedRule")).on("focusin" + y + " click" + y + " showtip" + y, S, q(s, "_focusin")).on("focusout" + y + " validate" + y, S, q(s, "_focusout")), 2 <= i.timely && s.$el.on("keyup" + y + " paste" + y, S, q(s, "_focusout")).on("click" + y, ":radio,:checkbox", q(s, "_click")).on("change" + y, 'select,input[type="file"]', q(s, "_click")), s._novalidate = g(t, z), g(t, z, z))
    },
    _initFields: function (t) {
      var o = this;
      f(t) && d.each(t, function (t, e) {
        var i;
        null === e ? ((i = o.elements[t]) && o._resetElement(i, !0), delete o.fields[t]) : o.fields[t] = _(e) ? {
          rule: e
        } : e
      }), o.$el.find(S).each(function () {
        o._parse(this)
      })
    },
    _parse: function (t) {
      var e, i = this,
        o = t.name,
        n = g(t, E);
      n && g(t, E, null), (o = t.id && "#" + t.id in i.fields || !t.name ? "#" + t.id : o) && ((e = i.fields[o] || {}).key = o, e.old = {}, e.rule = e.rule || n || "", e.rule) && (e.rule.match(/match|checked/) && (e.must = !0), -1 !== e.rule.indexOf("required") && (e.required = !0, g(t, x, !0)), ("timely" in e && !e.timely || !i.options.timely) && g(t, "notimely", !0), _(e.target) && g(t, F, e.target), _(e.tip) && g(t, I, e.tip), i.fields[o] = i._parseRule(e))
    },
    _parseRule: function (e) {
      var t = V.exec(e.rule),
        i = this.options;
      if (t) return e._i = 0, t[1] && (e.display = t[1]), !e.display && i.display && (e.display = i.display), t[2] && (e.rules = [], t[2].replace(N, function () {
        var t = arguments;
        t[3] = t[3] || t[4], e.rules.push({
          not: "!" === t[1],
          method: t[2],
          params: t[3] ? t[3].split(", ") : u,
          or: "|" === t[5]
        })
      })), e
    },
    _multiValidate: function (t, e) {
      var o = this,
        n = o.options;
      return o._multiValid = !0, (t = n.ignore ? t.not(n.ignore) : t).each(function (t, e) {
        var i = o.getField(e);
        return !(i && (o._validate(e, i), !o._multiValid) && n.stopOnError) && u
      }), d.when.apply(null, d.map(o.deferred, function (t) {
        return t
      })).done(function () {
        e.call(o, o._multiValid)
      }), d.isEmptyObject(o.deferred) ? o._multiValid : u
    },
    _submit: function (t) {
      var o = this,
        n = o.options,
        s = t.target,
        r = "submit" === t.type;
      t.preventDefault(), (v ? ~(v = !1) : o.submiting) || "validate" === t.type && o.$el[0] !== s || !1 === n.beforeSubmit.call(o, s) || (n.debug && j.log("\n" + t.type), o._reset(), o.submiting = !0, o.isValid = u, o._multiValidate(o.$el.find(S), function (t) {
        var e, i = t || 2 === n.debug ? "valid" : "invalid";
        t || (n.focusInvalid && o.$el.find(":input[" + O + '="true"]:first').focus(), e = d.map(o.errors, function (t) {
          return t
        })), o.submiting = !1, P(n[i]) && n[i].call(o, s, e), o.$el.trigger(i + ".form", [s, e]), t && !o.isAjaxSubmit && r && (v = !0, m && m.name && o.$el.append('<input type="hidden" name="' + m.name + '" value="' + d(m).val() + '">'), s.submit())
      }))
    },
    _reset: function (t) {
      var i = this;
      i.errors = {}, t && i.$el.find(S).each(function (t, e) {
        i._resetElement(e)
      })
    },
    _resetElement: function (t, e) {
      var i = this.options;
      d(t).removeClass(i.validClass + " " + i.invalidClass), this.hideMsg(t), e && g(t, x, null)
    },
    _focusin: function (t) {
      var e = this.options,
        i = t.target;
      if ("showtip" !== t.type) {
        if (this.submiting) return;
        if ("error" === g(i, M)) e.focusCleanup && (d(i).removeClass(e.invalidClass), this.hideMsg(i));
        else if ("" !== i.value) return
      }(t = g(i, I)) && this.showMsg(i, {
        type: "tip",
        msg: t
      })
    },
    _focusout: function (t, e) {
      var i, o, n = this,
        s = n.options,
        r = t.target,
        a = t.type,
        l = 0;
      if (!e && "paste" !== a) {
        if ("validate" === a) o = !0;
        else {
          if (g(r, "notimely")) return;
          if (2 <= s.timely && "keyup" !== a) return
        }
        if (s.ignore && d(r).is(s.ignore)) return;
        if ("keyup" === a) {
          e = t.keyCode;
          if (9 === e && !r.value) return;
          if (e < 48 && !{
              8: 1,
              9: 1,
              16: 1,
              32: 1,
              46: 1
            } [e]) return;
          l = 100 <= s.timely ? s.timely : 500
        }
      }(i = n.getField(r)) && (l ? (i._t && clearTimeout(i._t), i._t = setTimeout(function () {
        n._validate(r, i, o)
      }, l)) : n._validate(r, i, o))
    },
    _click: function (t) {
      this._focusout(t, !0)
    },
    _showTip: function (t) {
      var e = this;
      e.$el[0] === t.target && e.$el.find(S + "[" + I + "]").each(function () {
        e.showMsg(this, {
          msg: g(this, I),
          type: "tip"
        })
      })
    },
    _validatedField: function (t, e, i) {
      var o = this,
        n = o.options,
        t = t.target,
        s = i.isValid = e.isValid = !!i.isValid,
        r = s ? "valid" : "invalid";
      i.key = e.key, i.rule = e._r, s ? i.type = "ok" : (o.submiting && (o.errors[e.key] = i.msg), o._multiValid = !1), e.old.value = t.value, e.old.id = t.id, o.elements[e.key] = i.element = t, o.$el[0].isValid = o.isValid = s && o.isFormValid(), P(e[r]) && e[r].call(o, t, i), d(t).attr(O, !s || null).removeClass(s ? n.invalidClass : n.validClass).addClass(i.skip ? "" : s ? n.validClass : n.invalidClass).trigger(r + C, [i, o]), o.$el.triggerHandler("validation", [i, o]), o.checkOnly || (e.msgMaker || n.msgMaker) && o[i.showOk || i.msg ? "showMsg" : "hideMsg"](t, i, e)
    },
    _validatedRule: function (t, e, i, o) {
      e = e || r.getField(l), o = o || {};
      var n, s, r = this,
        a = r.options,
        l = t.target,
        t = e._r,
        c = !1;
      if (null === i) return d(l).trigger("validated" + C, [e, {
        isValid: !0,
        skip: !0
      }]), u;
      if (!0 === i || i === u || "" === i ? c = !0 : _(i) ? n = i : f(i) && (i.error ? n = i.error : (n = i.ok, c = !0)), e.rules && ((i = e.rules[e._i]).not && (n = u, c = "required" === t || !c), i.or))
        if (c)
          for (; e._i < e.rules.length && e.rules[e._i].or;) e._i++;
        else s = !0;
      s || (c ? (o.isValid = c, !1 !== a.showOk && (_(n) || (_(e.ok) ? n = e.ok : _(g(l, H)) ? n = g(l, H) : _(a.showOk) && (n = a.showOk)), _(n)) && (o.showOk = c, o.msg = n), d(l).trigger("valid" + b, [t, o.msg])) : (o.msg = (p(l, e, n, r.messages[t]) || D.defaultMsg).replace("{0}", r._getDisplay(l, e.display || "")), d(l).trigger("invalid" + b, [t, o.msg]))), a.debug && j.log("   " + e._i + ": " + t + " => " + (c || o.msg || c)), s || c && e._i < e.rules.length - 1 ? (e._i++, r._checkRule(l, e)) : (e._i = 0, d(l).trigger("validated" + C, [e, o]))
    },
    _checkRule: function (n, s) {
      var r, a = this,
        t = s.key,
        l = s.rules[s._i],
        e = l.method,
        i = l.params;
      a.submiting && a.deferred[t] || (r = s.old, s._r = e, e = !s.must && r.ret !== u && r.rule === l && r.id === n.id && n.value && r.value === n.value ? r.ret : (function (t, e) {
        if (t = d.trim(g(t, E + "-" + e))) return (t = Function("return " + t)()) ? c(t) : u
      }(n, e) || a.rules[e] || A).call(a, n, i, s), f(e) && P(e.then) ? (a.deferred[t] = e, a.checkOnly || a.showMsg(n, {
        type: "loading",
        msg: a.options.loadingMsg
      }, s), e.then(function (t, e, i) {
        var i = i.responseText,
          o = s.dataFilter || a.options.dataFilter;
        "json" === this.dataType ? i = t : "{" === i.charAt(0) && (i = d.parseJSON(i) || {}), (t = (o = P(o) ? o : function (t) {
          return _(t) || f(t) && ("error" in t || "ok" in t) ? t : u
        })(i)) === u && (t = o(i.data)), r.rule = l, r.ret = t, d(n).trigger("validated" + b, [s, t])
      }, function (t, e) {
        d(n).trigger("validated" + b, [s, e])
      }).always(function () {
        delete a.deferred[t]
      }), s.isValid = u) : d(n).trigger("validated" + b, [s, e]))
    },
    _validate: function (t, e) {
      if (!t.disabled && null === g(t, z)) {
        var i, o = this,
          n = d(t),
          s = {},
          r = e.group,
          a = e.isValid = !0;
        if (e.rules || o._parse(t), o.options.debug && j.info(e.key), r && (i = r.callback.call(o, r.$elems)) !== u && (o.hideMsg(r.target, {}, e), !0 === i ? i = u : (e._i = 0, a = !(e._r = "group"), o.hideMsg(t, {}, e), d.extend(s, r))), a && !e.required && !e.must && !t.value) {
          if ("tip" === g(t, M)) return;
          if (!l(t)) return n.trigger("validated" + C, [e, {
            isValid: !0
          }]), u
        }
        i !== u ? n.trigger("validated" + b, [e, i, s]) : e.rule && o._checkRule(t, e)
      }
    },
    test: function (t, e) {
      var i, o, e = R.exec(e);
      return e && (o = e[1]) in this.rules && (e = (e = e[2] || e[3]) ? e.split(", ") : u, i = this.rules[o].call(this, t, e)), !0 === i || i === u || null === i
    },
    getRangeMsg: function (t, e, i, o) {
      if (e) {
        var i = this.messages[i] || "",
          e = e[0].split("~"),
          n = e[0],
          s = e[1],
          r = "rg",
          a = [""],
          l = +t == +t;
        if (2 === e.length) {
          if (n && s) {
            if (l && +n <= t && t <= +s) return !0;
            a = a.concat(e)
          } else if (n && !s) {
            if (l && +n <= t) return !0;
            a.push(n), r = "gt"
          } else if (!n && s) {
            if (l && t <= +s) return !0;
            a.push(s), r = "lt"
          }
        } else {
          if (t === +n) return !0;
          a.push(n), r = "eq"
        }
        return i && (o && i[r + o] && (r += o), a[0] = i[r]), this.renderMsg.apply(null, a)
      }
    },
    renderMsg: function () {
      var t = arguments,
        e = t[0],
        i = t.length;
      if (e) {
        for (; --i;) e = e.replace("{" + i + "}", t[i]);
        return e
      }
    },
    _getDisplay: function (t, e) {
      return _(e) ? e : P(e) ? e.call(this, t) : ""
    },
    _getMsgOpt: function (t) {
      return d.extend({}, this.msgOpt, _(t) ? {
        msg: t
      } : t)
    },
    _getMsgDOM: function (t, e) {
      var i, o, n, s = d(t);
      return s.is(":input") ? ((n = e.target || g(t, F)) && (n = this.$el.find(n)).length && (n.is(":input") ? t = n.get(0) : i = n), i || (o = !l(t) && t.id ? t.id : t.name, i = this.$el.find(e.wrapper + "." + k + '[for="' + o + '"]'))) : i = s, i.length || (s = this.$el.find(n || t), i = d("<" + e.wrapper + ">").attr({
        class: k + (e.cls ? " " + e.cls : ""),
        style: e.style || "",
        for: o
      }), l(t) ? (n = s.parent(), i.appendTo(n.is("label") ? n.parent() : n)) : i[e.pos && "right" !== e.pos ? "insertBefore" : "insertAfter"](s)), i
    },
    showMsg: function (t, e, i) {
      var o, n, s = this;
      ((e = s._getMsgOpt(e)).msg || e.showOk) && (t = d(t).get(0), d(t).is(S) && (g(t, M, e.type), i = i || s.getField(t)) && (e.style = i.msgStyle || e.style, e.cls = i.msgClass || e.cls, e.wrapper = i.msgWrapper || e.wrapper), n = (o = s._getMsgDOM(t, e))[0].className, B.test(n) || o.addClass(e.cls), G && "bottom" === e.pos && (o[0].style.marginTop = d(t).outerHeight() + "px"), o.html(((i || {}).msgMaker || s.options.msgMaker).call(s, e)), o[0].style.display = "", P(e.show)) && e.show.call(s, o, e.type)
    },
    hideMsg: function (t, e, i) {
      t = d(t).get(0), e = this._getMsgOpt(e), d(t).is(S) && (g(t, M, null), g(t, O, null), i = i || this.getField(t)) && (e.wrapper = i.msgWrapper || e.wrapper);
      i = this._getMsgDOM(t, e);
      i.length && (P(e.hide) ? e.hide.call(this, i, e.type) : i[0].style.display = "none")
    },
    mapMsg: function (t) {
      var i = this;
      d.each(t, function (t, e) {
        t = i.elements[t] || i.$el.find(':input[name="' + t + '"]')[0];
        i.showMsg(t, e)
      })
    },
    setMsg: function (t) {
      new a(t, this.messages)
    },
    setRule: function (t) {
      new r(t, this.rules), d.map(this.fields, function (t) {
        t.old = {}
      })
    },
    getField: function (t) {
      var e = t.id && "#" + t.id in this.fields || !t.name ? "#" + t.id : t.name;
      return g(t, E) && this._parse(t), this.fields[e]
    },
    setField: function (t, e) {
      var i = {};
      _(t) ? i[t] = e : f(t) && (i = t), this._initFields(i)
    },
    isFormValid: function () {
      var t, e = this.fields;
      for (t in e)
        if (!e[t].isValid) return e[t].isValid;
      return !0
    },
    holdSubmit: function (t) {
      this.submiting = t === u || t
    },
    cleanUp: function () {
      this._reset(1)
    },
    destroy: function () {
      this._reset(1), this.$el.off(y).removeData(w), g(this.$el[0], z, this._novalidate)
    }
  }, d(document).on("focusin", ":input[" + E + "]", function (t) {
    s(t)
  }).on("click", "input,button", function (t) {
    var e = this,
      i = e.name;
    e.form && ("submit" === e.type ? null !== g(m = e, z) && (v = !0) : i && l(e) && ((e = e.form.elements[i]).length && (e = e[0]), g(e, E)) && s(t))
  }).on("submit validate", "form", function (t) {
    var e, i;
    null !== g(this, z) || (i = d(this)).data(w) || (e = i[w]().data(w), d.isEmptyObject(e.fields) ? (g(this, z, z), i.off(y).removeData(w)) : e._submit(t))
  }), new r({
    required: function (t, e) {
      var i = d.trim(t.value),
        o = !0;
      if (e)
        if (1 === e.length) {
          if (!i && !this.test(t, e[0])) return g(t, x, null), null;
          g(t, x, !0)
        } else "not" === e[0] && d.map(e.slice(1), function (t) {
          i === d.trim(t) && (o = !1)
        });
      return o && !!i
    },
    integer: function (t, e) {
      var i, o = "[1-9]\\d*",
        e = e ? e[0] : "*";
      switch (e) {
        case "+":
          i = o;
          break;
        case "-":
          i = "-" + o;
          break;
        case "+0":
          i = "0|" + o;
          break;
        case "-0":
          i = "0|-" + o;
          break;
        default:
          i = "0|-?" + o
      }
      return i = "^(?:" + i + ")$", RegExp(i).test(t.value) || this.messages.integer[e]
    },
    match: function (t, e, i) {
      if (e) {
        var o, n, s, r, a, l = this,
          c = "eq",
          u = 1 === e.length ? e[0] : (c = e[0], e[1]),
          p = "#" === u.charAt(0) ? u : ':input[name="' + u + '"]';
        if (r = l.$el.find(p)[0]) {
          if (a = l.getField(r), o = t.value, n = r.value, i._match || (l.$el.on("valid" + C + y, p, function () {
              d(t).trigger("validate")
            }), i._match = a._match = 1), !i.required && "" === o && "" === n) return null;
          if (e[2] && ("date" === e[2] ? (o = h(o), n = h(n)) : "time" === e[2] && (o = +o.replace(":", ""), n = +n.replace(":", ""))), "eq" !== c && !isNaN(+o) && isNaN(+n)) return !0;
          switch (s = l.messages.match[c].replace("{1}", l._getDisplay(t, a.display || u)), c) {
            case "lt":
              return +o < +n || s;
            case "lte":
              return +o <= +n || s;
            case "gte":
              return +n <= +o || s;
            case "gt":
              return +n < +o || s;
            case "neq":
              return o !== n || s;
            default:
              return o === n || s
          }
        }
      }
    },
    range: function (t, e) {
      return this.getRangeMsg(+t.value, e, "range")
    },
    checked: function (t, e, i) {
      var o;
      if (l(t)) return t = this.$el.find('input[name="' + t.name + '"]').filter(function () {
        var t = this;
        return !o && l(t) && (o = t), !t.disabled && t.checked && d(t).is(":visible")
      }).length, e ? this.getRangeMsg(t, e, "checked") : !!t || p(o, i, "") || this.messages.required
    },
    length: function (t, e) {
      t = t.value, t = (e[1] ? t.replace(i, "xx") : t).length;
      return this.getRangeMsg(t, e, "length", e[1] ? "_2" : "")
    },
    remote: function (t, e) {
      var i, o, n, s;
      if (e) return i = this, o = (n = W.exec(e[0]))[2], n = (n[1] || "POST").toUpperCase(), (s = {})[t.name] = t.value, e[1] && d.map(e.slice(1), function (t) {
        var e = t.split(":");
        t = d.trim(e[0]), e = d.trim(e[1] || "") || t, s[t] = i.$el.find("#" === e.charAt(0) ? e : ':input[name="' + e + '"]').val()
      }), s = d.param(s), "POST" === n && -1 !== (t = o.indexOf("?")) && (s += "&" + o.substring(t + 1, o.length), o = o.substring(0, t)), d.ajax({
        url: o,
        type: n,
        data: s,
        cache: !1
      })
    },
    filter: function (t, e) {
      t.value = t.value.replace(e ? RegExp("[" + e[0] + "]", "gm") : Q, "")
    }
  }), o.config = function (t) {
    d.each(t, function (t, e) {
      "rules" === t ? new r(e) : "messages" === t ? new a(e) : D[t] = e
    })
  }, o.setTheme = function (t, e) {
    f(t) ? d.each(t, function (t, e) {
      L[t] = e
    }) : _(t) && f(e) && (L[t] = e)
  }, d[w] = o
}(jQuery),
function (t) {
  t.validator.config({
    defaultMsg: "{0}格式不正确",
    loadingMsg: "正在验证...",
    rules: {
      digits: [/^\d+$/, "请输入数字"],
      letters: [/^[a-z]+$/i, "{0}只能输入字母"],
      tel: [/^(?:(?:0\d{2,3}[- ]?[1-9]\d{6,7})|(?:[48]00[- ]?[1-9]\d{6}))$/, "电话格式不正确"],
      mobile: [/^1[3-9]\d{9}$/, "手机号格式不正确"],
      email: [/^[\w\+-]+(\.[\w\+-]+)*@[a-z\d-]+(\.[a-z\d-]+)*\.([a-z]{2,4})$/i, "邮箱格式不正确"],
      qq: [/^[1-9]\d{4,}$/, "QQ号格式不正确"],
      date: [/^\d{4}-\d{1,2}-\d{1,2}$/, "请输入正确的日期,例:yyyy-mm-dd"],
      time: [/^([01]\d|2[0-3])(:[0-5]\d){1,2}$/, "请输入正确的时间,例:14:30或14:30:00"],
      ID_card: [/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/, "请输入正确的身份证号码"],
      url: [/^(https?|ftp):\/\/[^\s]+$/i, "网址格式不正确"],
      postcode: [/^[1-9]\d{5}$/, "邮政编码格式不正确"],
      chinese: [/^[\u0391-\uFFE5]+$/, "请输入中文"],
      username: [/^\w{3,12}$/, "请输入3-12位数字、字母、下划线"],
      password: [/^[0-9a-zA-Z]{6,16}$/, "密码由6-16位数字、字母组成"],
      accept: function (t, e) {
        return !e || "*" === (e = e[0]) || new RegExp(".(?:" + (e || "png|jpg|jpeg|gif") + ")$", "i").test(t.value) || this.renderMsg("只接受{1}后缀", e.replace("|", ","))
      }
    }
  }), t.validator.config({
    messages: {
      required: "{0}不能为空",
      remote: "{0}已被使用",
      integer: {
        "*": "请输入整数",
        "+": "请输入正整数",
        "+0": "请输入正整数或0",
        "-": "请输入负整数",
        "-0": "请输入负整数或0"
      },
      match: {
        eq: "{0}与{1}不一致",
        neq: "{0}与{1}不能相同",
        lt: "{0}必须小于{1}",
        gt: "{0}必须大于{1}",
        lte: "{0}必须小于或等于{1}",
        gte: "{0}必须大于或等于{1}"
      },
      range: {
        rg: "请输入{1}到{2}的数",
        gt: "请输入大于或等于{1}的数",
        lt: "请输入小于或等于{1}的数"
      },
      checked: {
        eq: "请选择{1}项",
        rg: "请选择{1}到{2}项",
        gt: "请至少选择{1}项",
        lt: "请最多选择{1}项"
      },
      length: {
        eq: "请输入{1}个字符",
        rg: "请输入{1}到{2}个字符",
        gt: "请至少输入{1}个字符",
        lt: "请最多输入{1}个字符",
        eq_2: "",
        rg_2: "",
        gt_2: "",
        lt_2: ""
      }
    }
  });
  var e = '<span class="n-arrow"><b>◆</b><i>◆</i></span>';
  t.validator.setTheme({
    simple_right: {
      formClass: "n-simple",
      msgClass: "n-right"
    },
    simple_bottom: {
      formClass: "n-simple",
      msgClass: "n-bottom"
    },
    yellow_top: {
      formClass: "n-yellow",
      msgClass: "n-top",
      msgArrow: e
    },
    yellow_right: {
      formClass: "n-yellow",
      msgClass: "n-right",
      msgArrow: e
    },
    yellow_right_effect: {
      formClass: "n-yellow",
      msgClass: "n-right",
      msgArrow: e,
      msgShow: function (t, e) {
        t = t.children();
        t.is(":animated") || ("error" === e ? t.css({
          left: "20px",
          opacity: 0
        }).delay(100).show().stop().animate({
          left: "-4px",
          opacity: 1
        }, 150).animate({
          left: "3px"
        }, 80).animate({
          left: 0
        }, 80) : t.css({
          left: 0,
          opacity: 1
        }).fadeIn(200))
      },
      msgHide: function (t, e) {
        t.children().stop().delay(100).show().animate({
          left: "20px",
          opacity: 0
        }, 300, function () {
          t.hide()
        })
      }
    }
  })
}(jQuery),
function (t) {
  "function" == typeof define && define.amd ? define(["jquery"], t) : t("object" == ("undefined" == typeof exports ? "undefined" : _typeof(exports)) ? require("jquery") : jQuery)
}(function (p) {
  function d(t) {
    return _.raw ? t : encodeURIComponent(t)
  }

  function h(t, e) {
    t = _.raw ? t : function (t) {
      0 === t.indexOf('"') && (t = t.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\"));
      try {
        return t = decodeURIComponent(t.replace(i, " ")), _.json ? JSON.parse(t) : t
      } catch (t) {}
    }(t);
    return p.isFunction(e) ? e(t) : t
  }
  var i = /\+/g,
    _ = p.cookie = function (t, e, i) {
      var o, n;
      if (void 0 !== e && !p.isFunction(e)) return "number" == typeof (i = p.extend({}, _.defaults, i)).expires && (o = i.expires, (n = i.expires = new Date).setTime(+n + 864e5 * o)), document.cookie = [d(t), "=", (n = e, d(_.json ? JSON.stringify(n) : String(n))), i.expires ? "; expires=" + i.expires.toUTCString() : "", i.path ? "; path=" + i.path : "", i.domain ? "; domain=" + i.domain : "", i.secure ? "; secure" : ""].join("");
      for (var s = t ? void 0 : {}, r = document.cookie ? document.cookie.split("; ") : [], a = 0, l = r.length; a < l; a++) {
        var c = r[a].split("="),
          u = (u = c.shift(), _.raw ? u : decodeURIComponent(u)),
          c = c.join("=");
        if (t && t === u) {
          s = h(c, e);
          break
        }
        t || void 0 === (c = h(c)) || (s[u] = c)
      }
      return s
    };
  _.defaults = {}, p.removeCookie = function (t, e) {
    return void 0 !== p.cookie(t) && (p.cookie(t, "", p.extend({}, e, {
      expires: -1
    })), !p.cookie(t))
  }
}), "function" != typeof Object.create && (Object.create = function (t) {
    function e() {}
    return e.prototype = t, new e
  }),
  function (o, e) {
    "use strict";
    var i = {
      _positionClasses: ["bottom-left", "bottom-right", "top-right", "top-left", "bottom-center", "top-center", "mid-center"],
      _defaultIcons: ["success", "error", "info", "warning"],
      init: function (t, e) {
        this.prepareOptions(t, o.toast.options), this.process()
      },
      prepareOptions: function (t, e) {
        var i = {};
        "string" == typeof t || t instanceof Array ? i.text = t : i = t, this.options = o.extend({}, e, i)
      },
      process: function () {
        this.setup(), this.addToDom(), this.position(), this.bindToast(), this.animate()
      },
      setup: function () {
        var t = "";
        if (this._toastEl = this._toastEl || o("<div></div>", {
            class: "jq-toast-single"
          }), t += '<span class="jq-toast-loader"></span>', this.options.allowToastClose && (t += '<span class="close-jq-toast-single">&times;</span>'), this.options.text instanceof Array) {
          this.options.heading && (t += '<h2 class="jq-toast-heading">' + this.options.heading + "</h2>"), t += '<ul class="jq-toast-ul">';
          for (var e = 0; e < this.options.text.length; e++) t += '<li class="jq-toast-li" id="jq-toast-item-' + e + '">' + this.options.text[e] + "</li>";
          t += "</ul>"
        } else this.options.heading && (t += '<h2 class="jq-toast-heading">' + this.options.heading + "</h2>"), t += this.options.text;
        this._toastEl.html(t), !1 !== this.options.bgColor && this._toastEl.css("background-color", this.options.bgColor), !1 !== this.options.textColor && this._toastEl.css("color", this.options.textColor), this.options.textAlign && this._toastEl.css("text-align", this.options.textAlign), !1 !== this.options.icon && (this._toastEl.addClass("jq-has-icon"), -1 !== o.inArray(this.options.icon, this._defaultIcons)) && this._toastEl.addClass("jq-icon-" + this.options.icon), !1 !== this.options.class && this._toastEl.addClass(this.options.class)
      },
      position: function () {
        "string" == typeof this.options.position && -1 !== o.inArray(this.options.position, this._positionClasses) ? "bottom-center" === this.options.position ? this._container.css({
          left: o(e).outerWidth() / 2 - this._container.outerWidth() / 2,
          bottom: 20
        }) : "top-center" === this.options.position ? this._container.css({
          left: o(e).outerWidth() / 2 - this._container.outerWidth() / 2,
          top: 20
        }) : "mid-center" === this.options.position ? this._container.css({
          left: o(e).outerWidth() / 2 - this._container.outerWidth() / 2,
          top: o(e).outerHeight() / 2 - this._container.outerHeight() / 2
        }) : this._container.addClass(this.options.position) : "object" === _typeof(this.options.position) ? this._container.css({
          top: this.options.position.top || "auto",
          bottom: this.options.position.bottom || "auto",
          left: this.options.position.left || "auto",
          right: this.options.position.right || "auto"
        }) : this._container.addClass("bottom-left")
      },
      bindToast: function () {
        var e = this;
        this._toastEl.on("afterShown", function () {
          e.processLoader()
        }), this._toastEl.find(".close-jq-toast-single").on("click", function (t) {
          t.preventDefault(), "fade" === e.options.showHideTransition ? (e._toastEl.trigger("beforeHide"), e._toastEl.fadeOut(function () {
            e._toastEl.trigger("afterHidden")
          })) : "slide" === e.options.showHideTransition ? (e._toastEl.trigger("beforeHide"), e._toastEl.slideUp(function () {
            e._toastEl.trigger("afterHidden")
          })) : (e._toastEl.trigger("beforeHide"), e._toastEl.hide(function () {
            e._toastEl.trigger("afterHidden")
          }))
        }), "function" == typeof this.options.beforeShow && this._toastEl.on("beforeShow", function () {
          e.options.beforeShow(e._toastEl)
        }), "function" == typeof this.options.afterShown && this._toastEl.on("afterShown", function () {
          e.options.afterShown(e._toastEl)
        }), "function" == typeof this.options.beforeHide && this._toastEl.on("beforeHide", function () {
          e.options.beforeHide(e._toastEl)
        }), "function" == typeof this.options.afterHidden && this._toastEl.on("afterHidden", function () {
          e.options.afterHidden(e._toastEl)
        }), "function" == typeof this.options.onClick && this._toastEl.on("click", function () {
          e.options.onClick(e._toastEl)
        })
      },
      addToDom: function () {
        var t, e = o(".jq-toast-wrap");
        0 === e.length ? (e = o("<div></div>", {
          class: "jq-toast-wrap"
        }), o("body").append(e)) : this.options.stack && !isNaN(parseInt(this.options.stack, 10)) || e.empty(), e.find(".jq-toast-single:hidden").remove(), e.append(this._toastEl), this.options.stack && !isNaN(parseInt(this.options.stack), 10) && 0 < (t = e.find(".jq-toast-single").length - this.options.stack) && o(".jq-toast-wrap").find(".jq-toast-single").slice(0, t).remove(), this._container = e
      },
      canAutoHide: function () {
        return !1 !== this.options.hideAfter && !isNaN(parseInt(this.options.hideAfter, 10))
      },
      processLoader: function () {
        if (!this.canAutoHide() || !1 === this.options.loader) return !1;
        var t = this._toastEl.find(".jq-toast-loader"),
          e = (this.options.hideAfter - 400) / 1e3 + "s",
          i = this.options.loaderBg,
          o = (o = t.attr("style") || "").substring(0, o.indexOf("-webkit-transition"));
        t.attr("style", o += "-webkit-transition: width " + e + " ease-in;                     -o-transition: width " + e + " ease-in;                     transition: width " + e + " ease-in;                     background-color: " + i + ";").addClass("jq-toast-loaded")
      },
      animate: function () {
        var t = this;
        this._toastEl.hide(), this._toastEl.trigger("beforeShow"), "fade" === this.options.showHideTransition.toLowerCase() ? this._toastEl.fadeIn(function () {
          t._toastEl.trigger("afterShown")
        }) : "slide" === this.options.showHideTransition.toLowerCase() ? this._toastEl.slideDown(function () {
          t._toastEl.trigger("afterShown")
        }) : this._toastEl.show(function () {
          t._toastEl.trigger("afterShown")
        }), this.canAutoHide() && (t = this, e.setTimeout(function () {
          "fade" === t.options.showHideTransition.toLowerCase() ? (t._toastEl.trigger("beforeHide"), t._toastEl.fadeOut(function () {
            t._toastEl.trigger("afterHidden")
          })) : "slide" === t.options.showHideTransition.toLowerCase() ? (t._toastEl.trigger("beforeHide"), t._toastEl.slideUp(function () {
            t._toastEl.trigger("afterHidden")
          })) : (t._toastEl.trigger("beforeHide"), t._toastEl.hide(function () {
            t._toastEl.trigger("afterHidden")
          }))
        }, this.options.hideAfter))
      },
      reset: function (t) {
        ("all" === t ? o(".jq-toast-wrap") : this._toastEl).remove()
      },
      update: function (t) {
        this.prepareOptions(t, this.options), this.setup(), this.bindToast()
      },
      close: function () {
        this._toastEl.find(".close-jq-toast-single").click()
      }
    };
    o.toast = function (t) {
      var e = Object.create(i);
      return e.init(t, this), {
        reset: function (t) {
          e.reset(t)
        },
        update: function (t) {
          e.update(t)
        },
        close: function () {
          e.close()
        }
      }
    }, o.toast.options = {
      text: "",
      heading: "",
      showHideTransition: "fade",
      allowToastClose: !0,
      hideAfter: 3e3,
      loader: !0,
      loaderBg: "#9EC600",
      stack: 5,
      position: "bottom-left",
      bgColor: !1,
      textColor: !1,
      textAlign: "left",
      icon: !1,
      beforeShow: function () {},
      afterShown: function () {},
      beforeHide: function () {},
      afterHidden: function () {},
      onClick: function () {}
    }
  }(jQuery, window, document),
  function (t) {
    "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == ("undefined" == typeof exports ? "undefined" : _typeof(exports)) ? module.exports = t(require("jquery")) : t(jQuery)
  }(function (y) {
    function e(t) {
      this.$container, this.constraints = null, this.__$tooltip, this.__init(t)
    }

    function n(i, o) {
      var n = !0;
      return y.each(i, function (t, e) {
        return void 0 === o[t] || i[t] !== o[t] ? n = !1 : void 0
      }), n
    }

    function l(t) {
      var e = t.attr("id"),
        e = e ? b.window.document.getElementById(e) : null;
      return e ? e === t[0] : y.contains(b.window.document.body, t[0])
    }

    function t() {
      this.__$emitterPrivate = y({}), this.__$emitterPublic = y({}), this.__instancesLatestArr = [], this.__plugins = {}, this._env = b
    }
    var c = {
        animation: "fade",
        animationDuration: 350,
        content: null,
        contentAsHTML: !1,
        contentCloning: !1,
        debug: !0,
        delay: 300,
        delayTouch: [300, 500],
        functionInit: null,
        functionBefore: null,
        functionReady: null,
        functionAfter: null,
        functionFormat: null,
        IEmin: 6,
        interactive: !1,
        multiple: !1,
        parent: null,
        plugins: ["sideTip"],
        repositionOnScroll: !1,
        restoration: "none",
        selfDestruction: !0,
        theme: [],
        timer: 0,
        trackerInterval: 500,
        trackOrigin: !1,
        trackTooltip: !1,
        trigger: "hover",
        triggerClose: {
          click: !1,
          mouseleave: !1,
          originClick: !1,
          scroll: !1,
          tap: !1,
          touchleave: !1
        },
        triggerOpen: {
          click: !1,
          mouseenter: !1,
          tap: !1,
          touchstart: !1
        },
        updateAnimation: "rotate",
        zIndex: 9999999
      },
      s = "undefined" != typeof window ? window : null,
      b = {
        hasTouchCapability: !(!s || !("ontouchstart" in s || s.DocumentTouch && s.document instanceof s.DocumentTouch || s.navigator.maxTouchPoints)),
        hasTransitions: function () {
          if (s) {
            var t = (s.document.body || s.document.documentElement).style,
              e = ["Moz", "Webkit", "Khtml", "O", "ms"];
            if ("string" == typeof t[i = "transition"]) return !0;
            for (var i = i.charAt(0).toUpperCase() + i.substr(1), o = 0; o < e.length; o++)
              if ("string" == typeof t[e[o] + i]) return !0
          }
          return !1
        }(),
        IE: !1,
        semVer: "4.2.8",
        window: s
      },
      i = (t.prototype = {
        __bridge: function (t, i, o) {
          var e, n;
          return i[o] || ((e = function () {}).prototype = t, (n = new e).__init && n.__init(i), y.each(t, function (t, e) {
            0 != t.indexOf("__") && (i[t] ? c.debug && console.log("The " + t + " method of the " + o + " plugin conflicts with another plugin or native methods") : (i[t] = function () {
              return n[t].apply(n, Array.prototype.slice.apply(arguments))
            }, i[t].bridged = n))
          }), i[o] = n), this
        },
        __setWindow: function (t) {
          return b.window = t, this
        },
        _getRuler: function (t) {
          return new e(t)
        },
        _off: function () {
          return this.__$emitterPrivate.off.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
        },
        _on: function () {
          return this.__$emitterPrivate.on.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
        },
        _one: function () {
          return this.__$emitterPrivate.one.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
        },
        _plugin: function (t) {
          var i, o, e = this;
          if ("string" == typeof t) return o = null, 0 < (i = t).indexOf(".") ? o = e.__plugins[i] : y.each(e.__plugins, function (t, e) {
            return e.name.substring(e.name.length - i.length - 1) == "." + i ? (o = e, !1) : void 0
          }), o;
          if (t.name.indexOf(".") < 0) throw new Error("Plugins must be namespaced");
          return (e.__plugins[t.name] = t).core && e.__bridge(t.core, e, t.name), this
        },
        _trigger: function () {
          var t = Array.prototype.slice.apply(arguments);
          return "string" == typeof t[0] && (t[0] = {
            type: t[0]
          }), this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate, t), this.__$emitterPublic.trigger.apply(this.__$emitterPublic, t), this
        },
        instances: function (t) {
          var o = [];
          return y(t || ".tooltipstered").each(function () {
            var i = y(this),
              t = i.data("tooltipster-ns");
            t && y.each(t, function (t, e) {
              o.push(i.data(e))
            })
          }), o
        },
        instancesLatest: function () {
          return this.__instancesLatestArr
        },
        off: function () {
          return this.__$emitterPublic.off.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        },
        on: function () {
          return this.__$emitterPublic.on.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        },
        one: function () {
          return this.__$emitterPublic.one.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        },
        origins: function (t) {
          return y((t ? t + " " : "") + ".tooltipstered").toArray()
        },
        setDefaults: function (t) {
          return y.extend(c, t), this
        },
        triggerHandler: function () {
          return this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        }
      }, y.tooltipster = new t, y.Tooltipster = function (t, e) {
        this.__callbacks = {
          close: [],
          open: []
        }, this.__closingTime, this.__Content, this.__contentBcr, this.__destroyed = !1, this.__$emitterPrivate = y({}), this.__$emitterPublic = y({}), this.__enabled = !0, this.__garbageCollector, this.__Geometry, this.__lastPosition, this.__namespace = "tooltipster-" + Math.round(1e6 * Math.random()), this.__options, this.__$originParents, this.__pointerIsOverOrigin = !1, this.__previousThemes = [], this.__state = "closed", this.__timeouts = {
          close: [],
          open: null
        }, this.__touchEvents = [], this.__tracker = null, this._$origin, this._$tooltip, this.__init(t, e)
      }, y.Tooltipster.prototype = {
        __init: function (t, e) {
          var i, o = this;
          o._$origin = y(t), o.__options = y.extend(!0, {}, c, e), o.__optionsFormat(), !b.IE || b.IE >= o.__options.IEmin ? (t = null, void 0 === o._$origin.data("tooltipster-initialTitle") && (t = o._$origin.attr("title"), o._$origin.data("tooltipster-initialTitle", t = void 0 === t ? null : t)), null !== o.__options.content ? o.__contentSet(o.__options.content) : (i = (e = o._$origin.attr("data-tooltip-content")) ? y(e) : i) && i[0] ? o.__contentSet(i.first()) : o.__contentSet(t), o._$origin.removeAttr("title").addClass("tooltipstered"), o.__prepareOrigin(), o.__prepareGC(), y.each(o.__options.plugins, function (t, e) {
            o._plug(e)
          }), b.hasTouchCapability && y(b.window.document.body).on("touchmove." + o.__namespace + "-triggerOpen", function (t) {
            o._touchRecordEvent(t)
          }), o._on("created", function () {
            o.__prepareTooltip()
          })._on("repositioned", function (t) {
            o.__lastPosition = t.position
          })) : o.__options.disabled = !0
        },
        __contentInsert: function () {
          var t = this,
            e = t._$tooltip.find(".tooltipster-content"),
            i = t.__Content;
          return t._trigger({
            type: "format",
            content: t.__Content,
            format: function (t) {
              i = t
            }
          }), "string" != typeof (i = t.__options.functionFormat ? t.__options.functionFormat.call(t, t, {
            origin: t._$origin[0]
          }, t.__Content) : i) || t.__options.contentAsHTML ? e.empty().append(i) : e.text(i), t
        },
        __contentSet: function (t) {
          return t instanceof y && this.__options.contentCloning && (t = t.clone(!0)), this.__Content = t, this._trigger({
            type: "updated",
            content: t
          }), this
        },
        __destroyError: function () {
          throw new Error("This tooltip has been destroyed and cannot execute your method call.")
        },
        __geometry: function () {
          var t = this,
            e = t._$origin,
            i = t._$origin.is("area"),
            o = (i && (o = t._$origin.parent().attr("name"), e = y('img[usemap="#' + o + '"]')), e[0].getBoundingClientRect()),
            n = y(b.window.document),
            s = y(b.window),
            r = e,
            a = {
              available: {
                document: null,
                window: null
              },
              document: {
                size: {
                  height: n.height(),
                  width: n.width()
                }
              },
              window: {
                scroll: {
                  left: b.window.scrollX || b.window.document.documentElement.scrollLeft,
                  top: b.window.scrollY || b.window.document.documentElement.scrollTop
                },
                size: {
                  height: s.height(),
                  width: s.width()
                }
              },
              origin: {
                fixedLineage: !1,
                offset: {},
                size: {
                  height: o.bottom - o.top,
                  width: o.right - o.left
                },
                usemapImage: i ? e[0] : null,
                windowOffset: {
                  bottom: o.bottom,
                  left: o.left,
                  right: o.right,
                  top: o.top
                }
              }
            };
          if (i) {
            var n = t._$origin.attr("shape"),
              l = t._$origin.attr("coords");
            if (l && (l = l.split(","), y.map(l, function (t, e) {
                l[e] = parseInt(t)
              })), "default" != n) switch (n) {
              case "circle":
                var c = l[0],
                  u = l[1],
                  p = l[2],
                  u = u - p,
                  c = c - p;
                a.origin.size.height = 2 * p, a.origin.size.width = a.origin.size.height, a.origin.windowOffset.left += c, a.origin.windowOffset.top += u;
                break;
              case "rect":
                var p = l[0],
                  c = l[1],
                  u = l[2],
                  d = l[3];
                a.origin.size.height = d - c, a.origin.size.width = u - p, a.origin.windowOffset.left += p, a.origin.windowOffset.top += c;
                break;
              case "poly":
                for (var h = 0, _ = 0, f = 0, g = 0, m = "even", v = 0; v < l.length; v++) var w = l[v],
                  m = "even" == m ? (w < (h = f < w && (f = w, 0 === v) ? f : h) && (h = w), "odd") : (w < (_ = g < w && (g = w, 1 == v) ? g : _) && (_ = w), "even");
                a.origin.size.height = g - _, a.origin.size.width = f - h, a.origin.windowOffset.left += h, a.origin.windowOffset.top += _
            }
          }
          for (t._trigger({
              type: "geometry",
              edit: function (t) {
                a.origin.size.height = t.height, a.origin.windowOffset.left = t.left, a.origin.windowOffset.top = t.top, a.origin.size.width = t.width
              },
              geometry: {
                height: a.origin.size.height,
                left: a.origin.windowOffset.left,
                top: a.origin.windowOffset.top,
                width: a.origin.size.width
              }
            }), a.origin.windowOffset.right = a.origin.windowOffset.left + a.origin.size.width, a.origin.windowOffset.bottom = a.origin.windowOffset.top + a.origin.size.height, a.origin.offset.left = a.origin.windowOffset.left + a.window.scroll.left, a.origin.offset.top = a.origin.windowOffset.top + a.window.scroll.top, a.origin.offset.bottom = a.origin.offset.top + a.origin.size.height, a.origin.offset.right = a.origin.offset.left + a.origin.size.width, a.available.document = {
              bottom: {
                height: a.document.size.height - a.origin.offset.bottom,
                width: a.document.size.width
              },
              left: {
                height: a.document.size.height,
                width: a.origin.offset.left
              },
              right: {
                height: a.document.size.height,
                width: a.document.size.width - a.origin.offset.right
              },
              top: {
                height: a.origin.offset.top,
                width: a.document.size.width
              }
            }, a.available.window = {
              bottom: {
                height: Math.max(a.window.size.height - Math.max(a.origin.windowOffset.bottom, 0), 0),
                width: a.window.size.width
              },
              left: {
                height: a.window.size.height,
                width: Math.max(a.origin.windowOffset.left, 0)
              },
              right: {
                height: a.window.size.height,
                width: Math.max(a.window.size.width - Math.max(a.origin.windowOffset.right, 0), 0)
              },
              top: {
                height: Math.max(a.origin.windowOffset.top, 0),
                width: a.window.size.width
              }
            };
            "html" != r[0].tagName.toLowerCase();) {
            if ("fixed" == r.css("position")) {
              a.origin.fixedLineage = !0;
              break
            }
            r = r.parent()
          }
          return a
        },
        __optionsFormat: function () {
          return "number" == typeof this.__options.animationDuration && (this.__options.animationDuration = [this.__options.animationDuration, this.__options.animationDuration]), "number" == typeof this.__options.delay && (this.__options.delay = [this.__options.delay, this.__options.delay]), "number" == typeof this.__options.delayTouch && (this.__options.delayTouch = [this.__options.delayTouch, this.__options.delayTouch]), "string" == typeof this.__options.theme && (this.__options.theme = [this.__options.theme]), null === this.__options.parent ? this.__options.parent = y(b.window.document.body) : "string" == typeof this.__options.parent && (this.__options.parent = y(this.__options.parent)), "hover" == this.__options.trigger ? (this.__options.triggerOpen = {
            mouseenter: !0,
            touchstart: !0
          }, this.__options.triggerClose = {
            mouseleave: !0,
            originClick: !0,
            touchleave: !0
          }) : "click" == this.__options.trigger && (this.__options.triggerOpen = {
            click: !0,
            tap: !0
          }, this.__options.triggerClose = {
            click: !0,
            tap: !0
          }), this._trigger("options"), this
        },
        __prepareGC: function () {
          var t = this;
          return t.__options.selfDestruction ? t.__garbageCollector = setInterval(function () {
            var i = (new Date).getTime();
            t.__touchEvents = y.grep(t.__touchEvents, function (t, e) {
              return 6e4 < i - t.time
            }), l(t._$origin) || t.close(function () {
              t.destroy()
            })
          }, 2e4) : clearInterval(t.__garbageCollector), t
        },
        __prepareOrigin: function () {
          var t, e = this;
          return e._$origin.off("." + e.__namespace + "-triggerOpen"), b.hasTouchCapability && e._$origin.on("touchstart." + e.__namespace + "-triggerOpen touchend." + e.__namespace + "-triggerOpen touchcancel." + e.__namespace + "-triggerOpen", function (t) {
            e._touchRecordEvent(t)
          }), (e.__options.triggerOpen.click || e.__options.triggerOpen.tap && b.hasTouchCapability) && (t = "", e.__options.triggerOpen.click && (t += "click." + e.__namespace + "-triggerOpen "), e.__options.triggerOpen.tap && b.hasTouchCapability && (t += "touchend." + e.__namespace + "-triggerOpen"), e._$origin.on(t, function (t) {
            e._touchIsMeaningfulEvent(t) && e._open(t)
          })), (e.__options.triggerOpen.mouseenter || e.__options.triggerOpen.touchstart && b.hasTouchCapability) && (t = "", e.__options.triggerOpen.mouseenter && (t += "mouseenter." + e.__namespace + "-triggerOpen "), e.__options.triggerOpen.touchstart && b.hasTouchCapability && (t += "touchstart." + e.__namespace + "-triggerOpen"), e._$origin.on(t, function (t) {
            !e._touchIsTouchEvent(t) && e._touchIsEmulatedEvent(t) || (e.__pointerIsOverOrigin = !0, e._openShortly(t))
          })), (e.__options.triggerClose.mouseleave || e.__options.triggerClose.touchleave && b.hasTouchCapability) && (t = "", e.__options.triggerClose.mouseleave && (t += "mouseleave." + e.__namespace + "-triggerOpen "), e.__options.triggerClose.touchleave && b.hasTouchCapability && (t += "touchend." + e.__namespace + "-triggerOpen touchcancel." + e.__namespace + "-triggerOpen"), e._$origin.on(t, function (t) {
            e._touchIsMeaningfulEvent(t) && (e.__pointerIsOverOrigin = !1)
          })), e
        },
        __prepareTooltip: function () {
          var i = this,
            t = i.__options.interactive ? "auto" : "";
          return i._$tooltip.attr("id", i.__namespace).css({
            "pointer-events": t,
            zIndex: i.__options.zIndex
          }), y.each(i.__previousThemes, function (t, e) {
            i._$tooltip.removeClass(e)
          }), y.each(i.__options.theme, function (t, e) {
            i._$tooltip.addClass(e)
          }), i.__previousThemes = y.merge([], i.__options.theme), i
        },
        __scrollHandler: function (t) {
          var s, r, e, i, o = this;
          return o.__options.triggerClose.scroll ? o._close(t) : l(o._$origin) && l(o._$tooltip) && (s = null, t.target === b.window.document ? o.__Geometry.origin.fixedLineage || o.__options.repositionOnScroll && o.reposition(t) : (s = o.__geometry(), r = !1, "fixed" != o._$origin.css("position") && o.__$originParents.each(function (t, e) {
            var i = y(e),
              o = i.css("overflow-x"),
              n = i.css("overflow-y");
            if ("visible" != o || "visible" != n) {
              e = e.getBoundingClientRect();
              if ("visible" != o && (s.origin.windowOffset.left < e.left || s.origin.windowOffset.right > e.right)) return !(r = !0);
              if ("visible" != n && (s.origin.windowOffset.top < e.top || s.origin.windowOffset.bottom > e.bottom)) return !(r = !0)
            }
            return "fixed" != i.css("position") && void 0
          }), r ? o._$tooltip.css("visibility", "hidden") : (o._$tooltip.css("visibility", "visible"), o.__options.repositionOnScroll ? o.reposition(t) : (e = s.origin.offset.left - o.__Geometry.origin.offset.left, i = s.origin.offset.top - o.__Geometry.origin.offset.top, o._$tooltip.css({
            left: o.__lastPosition.coord.left + e,
            top: o.__lastPosition.coord.top + i
          })))), o._trigger({
            type: "scroll",
            event: t,
            geo: s
          })), o
        },
        __stateSet: function (t) {
          return this.__state = t, this._trigger({
            type: "state",
            state: t
          }), this
        },
        __timeoutsClear: function () {
          return clearTimeout(this.__timeouts.open), this.__timeouts.open = null, y.each(this.__timeouts.close, function (t, e) {
            clearTimeout(e)
          }), this.__timeouts.close = [], this
        },
        __trackerStart: function () {
          var i = this,
            o = i._$tooltip.find(".tooltipster-content");
          return i.__options.trackTooltip && (i.__contentBcr = o[0].getBoundingClientRect()), i.__tracker = setInterval(function () {
            var t, e;
            l(i._$origin) && l(i._$tooltip) ? (i.__options.trackOrigin && (t = !1, n((e = i.__geometry()).origin.size, i.__Geometry.origin.size) && (i.__Geometry.origin.fixedLineage ? n(e.origin.windowOffset, i.__Geometry.origin.windowOffset) && (t = !0) : n(e.origin.offset, i.__Geometry.origin.offset) && (t = !0)), t || (i.__options.triggerClose.mouseleave ? i._close() : i.reposition())), !i.__options.trackTooltip || (e = o[0].getBoundingClientRect()).height === i.__contentBcr.height && e.width === i.__contentBcr.width || (i.reposition(), i.__contentBcr = e)) : i._close()
          }, i.__options.trackerInterval), i
        },
        _close: function (i, t, e) {
          var o, n = this,
            s = !0;
          return n._trigger({
            type: "close",
            event: i,
            stop: function () {
              s = !1
            }
          }), (s || e) && (t && n.__callbacks.close.push(t), n.__callbacks.open = [], n.__timeoutsClear(), o = function () {
            y.each(n.__callbacks.close, function (t, e) {
              e.call(n, n, {
                event: i,
                origin: n._$origin[0]
              })
            }), n.__callbacks.close = []
          }, "closed" != n.__state ? (e = !0, t = (new Date).getTime() + n.__options.animationDuration[1], (e = !("disappearing" == n.__state && t > n.__closingTime && 0 < n.__options.animationDuration[1]) && e) && (n.__closingTime = t, "disappearing" != n.__state && n.__stateSet("disappearing"), e = function () {
            clearInterval(n.__tracker), n._trigger({
              type: "closing",
              event: i
            }), n._$tooltip.off("." + n.__namespace + "-triggerClose").removeClass("tooltipster-dying"), y(b.window).off("." + n.__namespace + "-triggerClose"), n.__$originParents.each(function (t, e) {
              y(e).off("scroll." + n.__namespace + "-triggerClose")
            }), n.__$originParents = null, y(b.window.document.body).off("." + n.__namespace + "-triggerClose"), n._$origin.off("." + n.__namespace + "-triggerClose"), n._off("dismissable"), n.__stateSet("closed"), n._trigger({
              type: "after",
              event: i
            }), n.__options.functionAfter && n.__options.functionAfter.call(n, n, {
              event: i,
              origin: n._$origin[0]
            }), o()
          }, b.hasTransitions ? (n._$tooltip.css({
            "-moz-animation-duration": n.__options.animationDuration[1] + "ms",
            "-ms-animation-duration": n.__options.animationDuration[1] + "ms",
            "-o-animation-duration": n.__options.animationDuration[1] + "ms",
            "-webkit-animation-duration": n.__options.animationDuration[1] + "ms",
            "animation-duration": n.__options.animationDuration[1] + "ms",
            "transition-duration": n.__options.animationDuration[1] + "ms"
          }), n._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying"), 0 < n.__options.animationDuration[1] && n._$tooltip.delay(n.__options.animationDuration[1]), n._$tooltip.queue(e)) : n._$tooltip.stop().fadeOut(n.__options.animationDuration[1], e))) : o()), n
        },
        _off: function () {
          return this.__$emitterPrivate.off.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
        },
        _on: function () {
          return this.__$emitterPrivate.on.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
        },
        _one: function () {
          return this.__$emitterPrivate.one.apply(this.__$emitterPrivate, Array.prototype.slice.apply(arguments)), this
        },
        _open: function (t, e) {
          var i, o, n, s, r, a = this;
          return !a.__destroying && l(a._$origin) && a.__enabled && !(i = !0) !== (i = "closed" == a.__state && (a._trigger({
            type: "before",
            event: t,
            stop: function () {
              i = !1
            }
          }), i) && a.__options.functionBefore ? a.__options.functionBefore.call(a, a, {
            event: t,
            origin: a._$origin[0]
          }) : i) && null !== a.__Content && (e && a.__callbacks.open.push(e), a.__callbacks.close = [], a.__timeoutsClear(), n = function () {
            "stable" != a.__state && a.__stateSet("stable"), y.each(a.__callbacks.open, function (t, e) {
              e.call(a, a, {
                origin: a._$origin[0],
                tooltip: a._$tooltip[0]
              })
            }), a.__callbacks.open = []
          }, "closed" !== a.__state ? (o = 0, "disappearing" === a.__state ? (a.__stateSet("appearing"), b.hasTransitions ? (a._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show"), 0 < a.__options.animationDuration[0] && a._$tooltip.delay(a.__options.animationDuration[0]), a._$tooltip.queue(n)) : a._$tooltip.stop().fadeIn(n)) : "stable" == a.__state && n()) : (a.__stateSet("appearing"), o = a.__options.animationDuration[0], a.__contentInsert(), a.reposition(t, !0), b.hasTransitions ? (a._$tooltip.addClass("tooltipster-" + a.__options.animation).addClass("tooltipster-initial").css({
            "-moz-animation-duration": a.__options.animationDuration[0] + "ms",
            "-ms-animation-duration": a.__options.animationDuration[0] + "ms",
            "-o-animation-duration": a.__options.animationDuration[0] + "ms",
            "-webkit-animation-duration": a.__options.animationDuration[0] + "ms",
            "animation-duration": a.__options.animationDuration[0] + "ms",
            "transition-duration": a.__options.animationDuration[0] + "ms"
          }), setTimeout(function () {
            "closed" != a.__state && (a._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial"), 0 < a.__options.animationDuration[0] && a._$tooltip.delay(a.__options.animationDuration[0]), a._$tooltip.queue(n))
          }, 0)) : a._$tooltip.css("display", "none").fadeIn(a.__options.animationDuration[0], n), a.__trackerStart(), y(b.window).on("resize." + a.__namespace + "-triggerClose", function (t) {
            var e = y(document.activeElement);
            (e.is("input") || e.is("textarea")) && y.contains(a._$tooltip[0], e[0]) || a.reposition(t)
          }).on("scroll." + a.__namespace + "-triggerClose", function (t) {
            a.__scrollHandler(t)
          }), a.__$originParents = a._$origin.parents(), a.__$originParents.each(function (t, e) {
            y(e).on("scroll." + a.__namespace + "-triggerClose", function (t) {
              a.__scrollHandler(t)
            })
          }), (a.__options.triggerClose.mouseleave || a.__options.triggerClose.touchleave && b.hasTouchCapability) && (a._on("dismissable", function (t) {
            t.dismissable ? t.delay ? (r = setTimeout(function () {
              a._close(t.event)
            }, t.delay), a.__timeouts.close.push(r)) : a._close(t) : clearTimeout(r)
          }), e = a._$origin, s = t = "", r = null, a.__options.interactive && (e = e.add(a._$tooltip)), a.__options.triggerClose.mouseleave && (t += "mouseenter." + a.__namespace + "-triggerClose ", s += "mouseleave." + a.__namespace + "-triggerClose "), a.__options.triggerClose.touchleave && b.hasTouchCapability && (t += "touchstart." + a.__namespace + "-triggerClose", s += "touchend." + a.__namespace + "-triggerClose touchcancel." + a.__namespace + "-triggerClose"), e.on(s, function (t) {
            var e;
            !a._touchIsTouchEvent(t) && a._touchIsEmulatedEvent(t) || (e = "mouseleave" == t.type ? a.__options.delay : a.__options.delayTouch, a._trigger({
              delay: e[1],
              dismissable: !0,
              event: t,
              type: "dismissable"
            }))
          }).on(t, function (t) {
            !a._touchIsTouchEvent(t) && a._touchIsEmulatedEvent(t) || a._trigger({
              dismissable: !1,
              event: t,
              type: "dismissable"
            })
          })), a.__options.triggerClose.originClick && a._$origin.on("click." + a.__namespace + "-triggerClose", function (t) {
            a._touchIsTouchEvent(t) || a._touchIsEmulatedEvent(t) || a._close(t)
          }), (a.__options.triggerClose.click || a.__options.triggerClose.tap && b.hasTouchCapability) && setTimeout(function () {
            var t, e;
            "closed" != a.__state && (t = "", e = y(b.window.document.body), a.__options.triggerClose.click && (t += "click." + a.__namespace + "-triggerClose "), a.__options.triggerClose.tap && b.hasTouchCapability && (t += "touchend." + a.__namespace + "-triggerClose"), e.on(t, function (t) {
              a._touchIsMeaningfulEvent(t) && (a._touchRecordEvent(t), a.__options.interactive && y.contains(a._$tooltip[0], t.target) || a._close(t))
            }), a.__options.triggerClose.tap) && b.hasTouchCapability && e.on("touchstart." + a.__namespace + "-triggerClose", function (t) {
              a._touchRecordEvent(t)
            })
          }, 0), a._trigger("ready"), a.__options.functionReady && a.__options.functionReady.call(a, a, {
            origin: a._$origin[0],
            tooltip: a._$tooltip[0]
          })), 0 < a.__options.timer) && (r = setTimeout(function () {
            a._close()
          }, a.__options.timer + o), a.__timeouts.close.push(r)), a
        },
        _openShortly: function (t) {
          var e, i = this,
            o = !0;
          return "stable" != i.__state && "appearing" != i.__state && !i.__timeouts.open && (i._trigger({
            type: "start",
            event: t,
            stop: function () {
              o = !1
            }
          }), o) && ((e = 0 == t.type.indexOf("touch") ? i.__options.delayTouch : i.__options.delay)[0] ? i.__timeouts.open = setTimeout(function () {
            i.__timeouts.open = null, i.__pointerIsOverOrigin && i._touchIsMeaningfulEvent(t) ? (i._trigger("startend"), i._open(t)) : i._trigger("startcancel")
          }, e[0]) : (i._trigger("startend"), i._open(t))), i
        },
        _optionsExtract: function (t, e) {
          var o = this,
            i = y.extend(!0, {}, e),
            n = o.__options[t];
          return n || (n = {}, y.each(e, function (t, e) {
            var i = o.__options[t];
            void 0 !== i && (n[t] = i)
          })), y.each(i, function (t, e) {
            void 0 !== n[t] && ("object" != _typeof(e) || e instanceof Array || null == e || "object" != _typeof(n[t]) || n[t] instanceof Array || null == n[t] ? i[t] = n[t] : y.extend(i[t], n[t]))
          }), i
        },
        _plug: function (t) {
          var e = y.tooltipster._plugin(t);
          if (e) return e.instance && y.tooltipster.__bridge(e.instance, this, e.name), this;
          throw new Error('The "' + t + '" plugin is not defined')
        },
        _touchIsEmulatedEvent: function (t) {
          for (var e = !1, i = (new Date).getTime(), o = this.__touchEvents.length - 1; 0 <= o; o--) {
            var n = this.__touchEvents[o];
            if (!(i - n.time < 500)) break;
            n.target === t.target && (e = !0)
          }
          return e
        },
        _touchIsMeaningfulEvent: function (t) {
          return this._touchIsTouchEvent(t) && !this._touchSwiped(t.target) || !this._touchIsTouchEvent(t) && !this._touchIsEmulatedEvent(t)
        },
        _touchIsTouchEvent: function (t) {
          return 0 == t.type.indexOf("touch")
        },
        _touchRecordEvent: function (t) {
          return this._touchIsTouchEvent(t) && (t.time = (new Date).getTime(), this.__touchEvents.push(t)), this
        },
        _touchSwiped: function (t) {
          for (var e = !1, i = this.__touchEvents.length - 1; 0 <= i; i--) {
            var o = this.__touchEvents[i];
            if ("touchmove" == o.type) {
              e = !0;
              break
            }
            if ("touchstart" == o.type && t === o.target) break
          }
          return e
        },
        _trigger: function () {
          var t = Array.prototype.slice.apply(arguments);
          return "string" == typeof t[0] && (t[0] = {
            type: t[0]
          }), t[0].instance = this, t[0].origin = this._$origin ? this._$origin[0] : null, t[0].tooltip = this._$tooltip ? this._$tooltip[0] : null, this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate, t), y.tooltipster._trigger.apply(y.tooltipster, t), this.__$emitterPublic.trigger.apply(this.__$emitterPublic, t), this
        },
        _unplug: function (i) {
          var t, o = this;
          return o[i] && ((t = y.tooltipster._plugin(i)).instance && y.each(t.instance, function (t, e) {
            o[t] && o[t].bridged === o[i] && delete o[t]
          }), o[i].__destroy && o[i].__destroy(), delete o[i]), o
        },
        close: function (t) {
          return this.__destroyed ? this.__destroyError() : this._close(null, t), this
        },
        content: function (t) {
          var e, i = this;
          return void 0 === t ? i.__Content : (i.__destroyed ? i.__destroyError() : (i.__contentSet(t), null !== i.__Content ? "closed" !== i.__state && (i.__contentInsert(), i.reposition(), i.__options.updateAnimation) && (b.hasTransitions ? (e = i.__options.updateAnimation, i._$tooltip.addClass("tooltipster-update-" + e), setTimeout(function () {
            "closed" != i.__state && i._$tooltip.removeClass("tooltipster-update-" + e)
          }, 1e3)) : i._$tooltip.fadeTo(200, .5, function () {
            "closed" != i.__state && i._$tooltip.fadeTo(200, 1)
          })) : i._close()), i)
        },
        destroy: function () {
          var t, e, i = this;
          return i.__destroyed ? i.__destroyError() : ("closed" != i.__state ? i.option("animationDuration", 0)._close(null, null, !0) : i.__timeoutsClear(), i._trigger("destroy"), i.__destroyed = !0, i._$origin.removeData(i.__namespace).off("." + i.__namespace + "-triggerOpen"), y(b.window.document.body).off("." + i.__namespace + "-triggerOpen"), (t = i._$origin.data("tooltipster-ns")) && (1 === t.length ? (e = null, "previous" == i.__options.restoration ? e = i._$origin.data("tooltipster-initialTitle") : "current" == i.__options.restoration && (e = "string" == typeof i.__Content ? i.__Content : y("<div></div>").append(i.__Content).html()), e && i._$origin.attr("title", e), i._$origin.removeClass("tooltipstered"), i._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")) : (t = y.grep(t, function (t, e) {
            return t !== i.__namespace
          }), i._$origin.data("tooltipster-ns", t))), i._trigger("destroyed"), i._off(), i.off(), i.__Content = null, i.__$emitterPrivate = null, i.__$emitterPublic = null, i.__options.parent = null, i._$origin = null, i._$tooltip = null, y.tooltipster.__instancesLatestArr = y.grep(y.tooltipster.__instancesLatestArr, function (t, e) {
            return i !== t
          }), clearInterval(i.__garbageCollector)), i
        },
        disable: function () {
          return this.__destroyed ? this.__destroyError() : (this._close(), this.__enabled = !1), this
        },
        elementOrigin: function () {
          return this.__destroyed ? void this.__destroyError() : this._$origin[0]
        },
        elementTooltip: function () {
          return this._$tooltip ? this._$tooltip[0] : null
        },
        enable: function () {
          return this.__enabled = !0, this
        },
        hide: function (t) {
          return this.close(t)
        },
        instance: function () {
          return this
        },
        off: function () {
          return this.__destroyed || this.__$emitterPublic.off.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        },
        on: function () {
          return this.__destroyed ? this.__destroyError() : this.__$emitterPublic.on.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        },
        one: function () {
          return this.__destroyed ? this.__destroyError() : this.__$emitterPublic.one.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        },
        open: function (t) {
          return this.__destroyed ? this.__destroyError() : this._open(null, t), this
        },
        option: function (t, e) {
          return void 0 === e ? this.__options[t] : (this.__destroyed ? this.__destroyError() : (this.__options[t] = e, this.__optionsFormat(), 0 <= y.inArray(t, ["trigger", "triggerClose", "triggerOpen"]) && this.__prepareOrigin(), "selfDestruction" === t && this.__prepareGC()), this)
        },
        reposition: function (t, e) {
          var i = this;
          return i.__destroyed ? i.__destroyError() : "closed" != i.__state && l(i._$origin) && (e || l(i._$tooltip)) && (e || i._$tooltip.detach(), i.__Geometry = i.__geometry(), i._trigger({
            type: "reposition",
            event: t,
            helper: {
              geo: i.__Geometry
            }
          })), i
        },
        show: function (t) {
          return this.open(t)
        },
        status: function () {
          return {
            destroyed: this.__destroyed,
            enabled: this.__enabled,
            open: "closed" !== this.__state,
            state: this.__state
          }
        },
        triggerHandler: function () {
          return this.__destroyed ? this.__destroyError() : this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic, Array.prototype.slice.apply(arguments)), this
        }
      }, y.fn.tooltipster = function () {
        var i, n = Array.prototype.slice.apply(arguments),
          o = "You are using a single HTML element as content for several tooltips. You probably want to set the contentCloning option to TRUE.";
        if (0 !== this.length) {
          if ("string" == typeof n[0]) return i = "#*$~&", this.each(function () {
            var t = y(this).data("tooltipster-ns"),
              t = t ? y(this).data(t[0]) : null;
            if (!t) throw new Error("You called Tooltipster's \"" + n[0] + '" method on an uninitialized element');
            if ("function" != typeof t[n[0]]) throw new Error('Unknown method "' + n[0] + '"');
            1 < this.length && "content" == n[0] && (n[1] instanceof y || "object" == _typeof(n[1]) && null != n[1] && n[1].tagName) && !t.__options.contentCloning && t.__options.debug && console.log(o);
            var e = t[n[0]](n[1], n[2]);
            return e !== t || "instance" === n[0] ? (i = e, !1) : void 0
          }), "#*$~&" !== i ? i : this;
          y.tooltipster.__instancesLatestArr = [];
          var t = n[0] && void 0 !== n[0].multiple,
            s = t && n[0].multiple || !t && c.multiple,
            t = n[0] && void 0 !== n[0].content,
            t = t && n[0].content || !t && c.content,
            e = n[0] && void 0 !== n[0].contentCloning,
            e = e && n[0].contentCloning || !e && c.contentCloning,
            r = n[0] && void 0 !== n[0].debug,
            a = r && n[0].debug || !r && c.debug;
          1 < this.length && (t instanceof y || "object" == _typeof(t) && null != t && t.tagName) && !e && a && console.log(o), this.each(function () {
            var t = !1,
              e = y(this),
              i = e.data("tooltipster-ns"),
              o = null;
            !i || s ? t = !0 : a && (console.log("Tooltipster: one or more tooltips are already attached to the element below. Ignoring."), console.log(this)), t && (o = new y.Tooltipster(this, n[0]), (i = i || []).push(o.__namespace), e.data("tooltipster-ns", i), e.data(o.__namespace, o), o.__options.functionInit && o.__options.functionInit.call(o, o, {
              origin: this
            }), o._trigger("init")), y.tooltipster.__instancesLatestArr.push(o)
          })
        }
        return this
      }, e.prototype = {
        __init: function (t) {
          this.__$tooltip = t, this.__$tooltip.css({
            left: 0,
            overflow: "hidden",
            position: "absolute",
            top: 0
          }).find(".tooltipster-content").css("overflow", "auto"), this.$container = y('<div class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(b.window.document.body)
        },
        __forceRedraw: function () {
          var t = this.__$tooltip.parent();
          this.__$tooltip.detach(), this.__$tooltip.appendTo(t)
        },
        constrain: function (t, e) {
          return this.constraints = {
            width: t,
            height: e
          }, this.__$tooltip.css({
            display: "block",
            height: "",
            overflow: "auto",
            width: t
          }), this
        },
        destroy: function () {
          this.__$tooltip.detach().find(".tooltipster-content").css({
            display: "",
            overflow: ""
          }), this.$container.remove()
        },
        free: function () {
          return this.constraints = null, this.__$tooltip.css({
            display: "",
            height: "",
            overflow: "visible",
            width: ""
          }), this
        },
        measure: function () {
          this.__forceRedraw();
          var t, e, i, o = this.__$tooltip[0].getBoundingClientRect(),
            n = {
              size: {
                height: o.height || o.bottom - o.top,
                width: o.width || o.right - o.left
              }
            };
          return this.constraints && (t = this.__$tooltip.find(".tooltipster-content"), i = this.__$tooltip.outerHeight(), e = t[0].getBoundingClientRect(), i = {
            height: i <= this.constraints.height,
            width: o.width <= this.constraints.width && e.width >= t[0].scrollWidth - 1
          }, n.fits = i.height && i.width), b.IE && b.IE <= 11 && n.size.width !== b.window.document.documentElement.clientWidth && (n.size.width = Math.ceil(n.size.width) + 1), n
        }
      }, navigator.userAgent.toLowerCase()),
      o = (-1 != i.indexOf("msie") ? b.IE = parseInt(i.split("msie")[1]) : -1 !== i.toLowerCase().indexOf("trident") && -1 !== i.indexOf(" rv:11") ? b.IE = 11 : -1 != i.toLowerCase().indexOf("edge/") && (b.IE = parseInt(i.toLowerCase().split("edge/")[1])), "tooltipster.sideTip");
    return y.tooltipster._plugin({
      name: o,
      instance: {
        __defaults: function () {
          return {
            arrow: !0,
            distance: 6,
            functionPosition: null,
            maxWidth: null,
            minIntersection: 16,
            minWidth: 0,
            position: null,
            side: "top",
            viewportAware: !0
          }
        },
        __init: function (t) {
          var e = this;
          e.__instance = t, e.__namespace = "tooltipster-sideTip-" + Math.round(1e6 * Math.random()), e.__previousState = "closed", e.__options, e.__optionsFormat(), e.__instance._on("state." + e.__namespace, function (t) {
            "closed" == t.state ? e.__close() : "appearing" == t.state && "closed" == e.__previousState && e.__create(), e.__previousState = t.state
          }), e.__instance._on("options." + e.__namespace, function () {
            e.__optionsFormat()
          }), e.__instance._on("reposition." + e.__namespace, function (t) {
            e.__reposition(t.event, t.helper)
          })
        },
        __close: function () {
          this.__instance.content() instanceof y && this.__instance.content().detach(), this.__instance._$tooltip.remove(), this.__instance._$tooltip = null
        },
        __create: function () {
          var t = y('<div class="tooltipster-base tooltipster-sidetip"><div class="tooltipster-box"><div class="tooltipster-content"></div></div><div class="tooltipster-arrow"><div class="tooltipster-arrow-uncropped"><div class="tooltipster-arrow-border"></div><div class="tooltipster-arrow-background"></div></div></div></div>');
          this.__options.arrow || t.find(".tooltipster-box").css("margin", 0).end().find(".tooltipster-arrow").hide(), this.__options.minWidth && t.css("min-width", this.__options.minWidth + "px"), this.__options.maxWidth && t.css("max-width", this.__options.maxWidth + "px"), this.__instance._$tooltip = t, this.__instance._trigger("created")
        },
        __destroy: function () {
          this.__instance._off("." + self.__namespace)
        },
        __optionsFormat: function () {
          var t = this;
          t.__options = t.__instance._optionsExtract(o, t.__defaults()), t.__options.position && (t.__options.side = t.__options.position), "object" != _typeof(t.__options.distance) && (t.__options.distance = [t.__options.distance]), t.__options.distance.length < 4 && (void 0 === t.__options.distance[1] && (t.__options.distance[1] = t.__options.distance[0]), void 0 === t.__options.distance[2] && (t.__options.distance[2] = t.__options.distance[0]), void 0 === t.__options.distance[3]) && (t.__options.distance[3] = t.__options.distance[1]), t.__options.distance = {
            top: t.__options.distance[0],
            right: t.__options.distance[1],
            bottom: t.__options.distance[2],
            left: t.__options.distance[3]
          }, "string" == typeof t.__options.side && (t.__options.side = [t.__options.side, {
            top: "bottom",
            right: "left",
            bottom: "top",
            left: "right"
          } [t.__options.side]], "left" == t.__options.side[0] || "right" == t.__options.side[0] ? t.__options.side.push("top", "bottom") : t.__options.side.push("right", "left")), 6 === y.tooltipster._env.IE && !0 !== t.__options.arrow && (t.__options.arrow = !1)
        },
        __reposition: function (l, c) {
          var e, u = this,
            p = u.__targetFind(c),
            d = [],
            i = (u.__instance._$tooltip.detach(), u.__instance._$tooltip.clone()),
            h = y.tooltipster._getRuler(i),
            _ = !1,
            t = u.__instance.option("animation");
          switch (t && i.removeClass("tooltipster-" + t), y.each(["window", "document"], function (t, n) {
            var s = null;
            if (u.__instance._trigger({
                container: n,
                helper: c,
                satisfied: _,
                takeTest: function (t) {
                  s = t
                },
                results: d,
                type: "positionTest"
              }), 1 == s || 0 != s && 0 == _ && ("window" != n || u.__options.viewportAware))
              for (t = 0; t < u.__options.side.length; t++) {
                var r = {
                    horizontal: 0,
                    vertical: 0
                  },
                  a = u.__options.side[t];
                "top" == a || "bottom" == a ? r.vertical = u.__options.distance[a] : r.horizontal = u.__options.distance[a], u.__sideChange(i, a), y.each(["natural", "constrained"], function (t, e) {
                  if (s = null, u.__instance._trigger({
                      container: n,
                      event: l,
                      helper: c,
                      mode: e,
                      results: d,
                      satisfied: _,
                      side: a,
                      takeTest: function (t) {
                        s = t
                      },
                      type: "positionTest"
                    }), 1 == s || 0 != s && 0 == _) {
                    var i = {
                        container: n,
                        distance: r,
                        fits: null,
                        mode: e,
                        outerSize: null,
                        side: a,
                        size: null,
                        target: p[a],
                        whole: null
                      },
                      o = ("natural" == e ? h.free() : h.constrain(c.geo.available[n][a].width - r.horizontal, c.geo.available[n][a].height - r.vertical)).measure();
                    if (i.size = o.size, i.outerSize = {
                        height: o.size.height + r.vertical,
                        width: o.size.width + r.horizontal
                      }, "natural" == e ? c.geo.available[n][a].width >= i.outerSize.width && c.geo.available[n][a].height >= i.outerSize.height ? i.fits = !0 : i.fits = !1 : i.fits = o.fits, "window" == n && (i.whole = !!i.fits && ("top" == a || "bottom" == a ? c.geo.origin.windowOffset.right >= u.__options.minIntersection && c.geo.window.size.width - c.geo.origin.windowOffset.left >= u.__options.minIntersection : c.geo.origin.windowOffset.bottom >= u.__options.minIntersection && c.geo.window.size.height - c.geo.origin.windowOffset.top >= u.__options.minIntersection)), d.push(i), i.whole) _ = !0;
                    else if ("natural" == i.mode && (i.fits || i.size.width <= c.geo.available[n][a].width)) return !1
                  }
                })
              }
          }), u.__instance._trigger({
            edit: function (t) {
              d = t
            },
            event: l,
            helper: c,
            results: d,
            type: "positionTested"
          }), d.sort(function (t, e) {
            var i, o;
            return t.whole && !e.whole ? -1 : !t.whole && e.whole ? 1 : t.whole && e.whole ? (i = u.__options.side.indexOf(t.side)) < (o = u.__options.side.indexOf(e.side)) || !(o < i) && "natural" == t.mode ? -1 : 1 : t.fits && !e.fits ? -1 : !t.fits && e.fits ? 1 : t.fits && e.fits ? (i = u.__options.side.indexOf(t.side)) < (o = u.__options.side.indexOf(e.side)) || !(o < i) && "natural" == t.mode ? -1 : 1 : "document" == t.container && "bottom" == t.side && "natural" == t.mode ? -1 : 1
          }), (e = d[0]).coord = {}, e.side) {
            case "left":
            case "right":
              e.coord.top = Math.floor(e.target - e.size.height / 2);
              break;
            case "bottom":
            case "top":
              e.coord.left = Math.floor(e.target - e.size.width / 2)
          }
          switch (e.side) {
            case "left":
              e.coord.left = c.geo.origin.windowOffset.left - e.outerSize.width;
              break;
            case "right":
              e.coord.left = c.geo.origin.windowOffset.right + e.distance.horizontal;
              break;
            case "top":
              e.coord.top = c.geo.origin.windowOffset.top - e.outerSize.height;
              break;
            case "bottom":
              e.coord.top = c.geo.origin.windowOffset.bottom + e.distance.vertical
          }
          "window" == e.container ? "top" == e.side || "bottom" == e.side ? e.coord.left < 0 ? 0 <= c.geo.origin.windowOffset.right - this.__options.minIntersection ? e.coord.left = 0 : e.coord.left = c.geo.origin.windowOffset.right - this.__options.minIntersection - 1 : e.coord.left > c.geo.window.size.width - e.size.width && (c.geo.origin.windowOffset.left + this.__options.minIntersection <= c.geo.window.size.width ? e.coord.left = c.geo.window.size.width - e.size.width : e.coord.left = c.geo.origin.windowOffset.left + this.__options.minIntersection + 1 - e.size.width) : e.coord.top < 0 ? 0 <= c.geo.origin.windowOffset.bottom - this.__options.minIntersection ? e.coord.top = 0 : e.coord.top = c.geo.origin.windowOffset.bottom - this.__options.minIntersection - 1 : e.coord.top > c.geo.window.size.height - e.size.height && (c.geo.origin.windowOffset.top + this.__options.minIntersection <= c.geo.window.size.height ? e.coord.top = c.geo.window.size.height - e.size.height : e.coord.top = c.geo.origin.windowOffset.top + this.__options.minIntersection + 1 - e.size.height) : (e.coord.left > c.geo.window.size.width - e.size.width && (e.coord.left = c.geo.window.size.width - e.size.width), e.coord.left < 0 && (e.coord.left = 0)), u.__sideChange(i, e.side), c.tooltipClone = i[0], c.tooltipParent = u.__instance.option("parent").parent[0], c.mode = e.mode, c.whole = e.whole, c.origin = u.__instance._$origin[0], c.tooltip = u.__instance._$tooltip[0], delete e.container, delete e.fits, delete e.mode, delete e.outerSize, delete e.whole, e.distance = e.distance.horizontal || e.distance.vertical;
          var o, t = y.extend(!0, {}, e);
          u.__instance._trigger({
            edit: function (t) {
              e = t
            },
            event: l,
            helper: c,
            position: t,
            type: "position"
          }), u.__options.functionPosition && (t = u.__options.functionPosition.call(u, u.__instance, c, t)) && (e = t), h.destroy(), t = "top" == e.side || "bottom" == e.side ? (o = {
            prop: "left",
            val: e.target - e.coord.left
          }, e.size.width - this.__options.minIntersection) : (o = {
            prop: "top",
            val: e.target - e.coord.top
          }, e.size.height - this.__options.minIntersection), o.val < this.__options.minIntersection ? o.val = this.__options.minIntersection : o.val > t && (o.val = t), t = c.geo.origin.fixedLineage ? c.geo.origin.windowOffset : {
            left: c.geo.origin.windowOffset.left + c.geo.window.scroll.left,
            top: c.geo.origin.windowOffset.top + c.geo.window.scroll.top
          }, e.coord = {
            left: t.left + (e.coord.left - c.geo.origin.windowOffset.left),
            top: t.top + (e.coord.top - c.geo.origin.windowOffset.top)
          }, u.__sideChange(u.__instance._$tooltip, e.side), c.geo.origin.fixedLineage ? u.__instance._$tooltip.css("position", "fixed") : u.__instance._$tooltip.css("position", ""), u.__instance._$tooltip.css({
            left: e.coord.left,
            top: e.coord.top,
            height: e.size.height,
            width: e.size.width
          }).find(".tooltipster-arrow").css({
            left: "",
            top: ""
          }).css(o.prop, o.val), u.__instance._$tooltip.appendTo(u.__instance.option("parent")), u.__instance._trigger({
            type: "repositioned",
            event: l,
            position: e
          })
        },
        __sideChange: function (t, e) {
          t.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-" + e)
        },
        __targetFind: function (t) {
          var e = {},
            i = this.__instance._$origin[0].getClientRects();
          return 1 < i.length && 1 == this.__instance._$origin.css("opacity") && (this.__instance._$origin.css("opacity", .99), i = this.__instance._$origin[0].getClientRects(), this.__instance._$origin.css("opacity", 1)), i.length < 2 ? (e.top = Math.floor(t.geo.origin.windowOffset.left + t.geo.origin.size.width / 2), e.bottom = e.top, e.left = Math.floor(t.geo.origin.windowOffset.top + t.geo.origin.size.height / 2), e.right = e.left) : (t = i[0], e.top = Math.floor(t.left + (t.right - t.left) / 2), t = 2 < i.length ? i[Math.ceil(i.length / 2) - 1] : i[0], e.right = Math.floor(t.top + (t.bottom - t.top) / 2), t = i[i.length - 1], e.bottom = Math.floor(t.left + (t.right - t.left) / 2), t = 2 < i.length ? i[Math.ceil((i.length + 1) / 2) - 1] : i[i.length - 1], e.left = Math.floor(t.top + (t.bottom - t.top) / 2)), e
        }
      }
    }), y
  });
var memberIdInfos = {},
  tooltip = null,
  messageTimer = null,
  params = ($(document).on("click", ".close-tooltip", function () {
    tooltip.tooltipster("close")
  }), $(function () {
    -1 != navigator.userAgent.indexOf("uni-app") && window.__banksteelToken && i("user_token", window.__banksteelToken), $.ajaxSetup({
      beforeSend: function (e) {
        "member.banksteel.com" == this.url.split("?")[0].replace(/http(s)?:\/\//, "").split("/")[0] && e.setRequestHeader("Accept", "application/json")
      },
      complete: function (e) {
        401 == e.status && (requestUrl = this.url.split("?")[0].replace(/http(s)?:\/\//, ""), -1 == ["member.banksteel.com/resource/api/v1/user/get-search-record", "member.banksteel.com/resource/api/v1/user/get-consult-status", "member.banksteel.com/member/header"].indexOf(requestUrl)) && (window.location.href = "//login.banksteel.com/login.htm?mybackurl=" + encodeURIComponent(window.location.href))
      }
    });
    for (var e, t = c("user_token"), a = [/res.banksteel.com\/detail\/.+/, /shop.banksteel.com\/\d+/, /\/tools\/calc/], s = 0; s < a.length; s++)
      if (a[s].test(window.location.href)) {
        t || (window.location.href = "//login.banksteel.com/login.htm?mybackurl=" + encodeURIComponent(window.location.href));
        break
      } 0 != $(".current-year").length && (e = (new Date).getFullYear(), $(".current-year").text(e));
    var n = {
        t1: 0,
        t2: 0
      },
      o = ($(".topbar li").each(function () {
        $(this).mouseenter(function () {
          $(this).addClass("menu-hover")
        }), $(this).mouseleave(function () {
          $(this).removeClass("menu-hover")
        })
      }), $(".msg-top li").click(function () {
        $(this).addClass("active").siblings().removeClass("active"), 0 == $(this).index() ? ($(".msg-wrap").show(), $(".account-msg").hide(), getMessageList(2)) : 1 == $(this).index() && ($(".msg-wrap").hide(), $(".account-msg").show(), getMessageList(1))
      }), $(".topbar .logon-menber-info .menu-bd a").click(function () {
        var e = $(this).html();
        console.log(e)
      }), $(".hd-search-title span").each(function () {
        $(this).click(function () {
          $(this).siblings().removeClass("active-tit"), $(this).addClass("active-tit");
          var e = $(this).parents(".header").find(".hd-search").find(".search-combobox-input").find("#kwInput1");
          "商品" == $(this).html() ? (e.val() ? m(e.val(), 0) : h(0), e.attr("placeholder", "请输入品名、规格、材质、钢厂等，如螺纹钢 10*9"), $(".page-chaoshi #keyword").show(), $(".page-chaoshi #kwInput1").hide()) : (e.val() ? m(e.val(), 1) : h(1), e.attr("placeholder", "请输入公司名称、简称"), $(".page-chaoshi #keyword").hide(), $(".page-chaoshi #kwInput1").show())
        })
      }), $(".m-nav .kaidain").on("click", function () {
        var e = c("user_token");
        window.location.href = e ? "//member.banksteel.com/console/#/seller/auth-member" : "//login.banksteel.com/login.htm?mybackurl=" + window.location.href
      }), $(".search-triggers").hover(function () {
        $(".search-triggers").addClass("search-triggers-hover")
      }, function () {
        $(".search-triggers").removeClass("search-triggers-hover")
      }), $(".header-nav-btn .mn-ico2").hover(function () {
        $(".cart-panel").show()
      }, function () {
        $(".cart-panel").hide()
      }), $(".header-nav-btn .cart-panel").hover(function () {
        $(".mn-ico2").addClass("m-nav-hover"), $(".cart-panel").show()
      }, function () {
        $(".mn-ico2").removeClass("m-nav-hover"), $(".cart-panel").hide()
      }), $(".nav-allsort").hover(function () {
        $(".allsort-list").show()
      }, function () {
        $(".allsort-list").hide()
      }), $(".page-index .nav-all").unbind(), $(".allsort-list .item-li").mouseenter(function () {
        $(this).addClass("hover")
      }), $(".allsort-list .item-li").mouseleave(function () {
        $(this).removeClass("hover")
      }), $(window).scroll(function () {
        150 <= $(document).scrollTop() ? ($(".top-search-fixed").slideDown(300), $(".header  .search-result").hide()) : $(".top-search-fixed").slideUp(100)
      }), $(document).on("change", ".top-search-fixed .type-search select", function () {
        "商品" == $(this).val() ? $(this).parents("form").find(".search-combobox input").attr("placeholder", "请输入品名、规格、材质、钢厂等，如螺纹钢 10*9") : $(this).parents("form").find(".search-combobox input").attr("placeholder", "请输入公司名称、简称")
      }), $("#search .search-combobox-input input").click(function (e) {
        e.stopPropagation(), $(".header .search-result").show(), 0 < $(".page-chaoshi #keyword").length && ($(".page-chaoshi #keyword").is(":hidden") ? ($(".page-chaoshi .sear-res").html(""), $(".page-chaoshi .sear-history").hide()) : ($(".page-chaoshi .sear-res").html('<li><a href="javascript:Chaoshi.searchKeyword(`建筑钢材`);"><span class="sear-res-l">建筑钢材</span></a></li><li><a href="javascript:Chaoshi.searchKeyword(`热卷`);"><span class="sear-res-l">热卷</span></a></li><li><a href="javascript:Chaoshi.searchKeyword(`中厚板`);"><span class="sear-res-l">中厚板</span></a></li><li><a href="javascript:Chaoshi.searchKeyword(`冷轧涂镀`);"><span class="sear-res-l">冷轧涂镀</span></a></li><li><a href="javascript:Chaoshi.searchKeyword(`型钢`);"><span class="sear-res-l">型钢</span></a></li>'), $(".page-chaoshi .sear-history").show()))
      }), $("#search .search-combobox-input #kwInput1").keyup(function () {
        var e = this;
        clearTimeout(n.t1), n.t1 = setTimeout(function () {
          $(e).val() ? m($(e).val(), "商品" == $(".active-tit").text() ? 0 : 1) : h("商品" == $(".active-tit").text() ? 0 : 1)
        }, 300)
      }), $(document).click(function () {
        $(".search-result").hide()
      }), $("#search-float .search-combobox-input input").click(function (e) {
        e.stopPropagation(), $(".top-search-fixed .search-result").show()
      }), $("#search-float .search-combobox-input input").keyup(function () {
        var e = this;
        clearTimeout(n.t2), n.t2 = setTimeout(function () {
          $(e).val() ? m($(e).val(), "商品" == $("#search-type .on").text() ? 0 : 1, !0) : h("商品" == $("#search-type .on").text() ? 0 : 1, "float")
        }, 300)
      }), $("#search-float #search-type li").click(function () {
        $(this).addClass("on"), $(this).siblings().removeClass("on"), $("#search-float .type-search .tit span").text($(this).text());
        var e = $("#search-float .search-combobox-input #kwInput1-f");
        "商品" == $(this).text() ? e.val() ? m(e.val(), 0, !0) : h(0, "float") : e.val() ? m(e.val(), 1, !0) : h(1, "float")
      }), $("#search #kwInput1").change(function () {
        $("#search-float .search-combobox-input #kwInput1-f").val($(this).val())
      }), $("#search-float .search-combobox-input #kwInput1-f").change(function () {
        $("#search #kwInput1").val($(this).val())
      }), $(document).on("click", ".hd-search .search-top5 a", function () {
        sensors.track("topSearchClick", {
          prior_source: document.referrer,
          current_page: window.location.href,
          key_word: $(this).text(),
          key_word_type: "推荐词",
          search_type: $(".hd-search-title .active-tit").text()
        }, function () {})
      }), $(document).on("click", ".sear-res .keyOption", function () {
        sensors.track("topSearchClick", {
          prior_source: document.referrer,
          current_page: window.location.href,
          key_word: $(this).find(".sear-res-l").text(),
          key_word_type: "联想词",
          search_type: $(".hd-search-title .active-tit").text()
        }, function () {})
      }), $(document).on("click", ".sear-res .history", function () {
        sensors.track("topSearchClick", {
          prior_source: document.referrer,
          current_page: window.location.href,
          key_word: $(this).find(".sear-res-l").text(),
          key_word_type: "历史词",
          search_type: $(".hd-search-title .active-tit").text()
        }, function () {})
      }), $(document).on("click", ".header-nav-btn1.mn-ico3", function () {
        sensors.track("fastBuyClick", {
          prior_source: document.referrer,
          current_page: window.location.href
        }, function () {})
      }), $(document).on("click", ".side-login .show-content", function () {
        sensors.track("fastBuyClick", {
          prior_source: document.referrer,
          current_page: "钢银首页主Banner右侧的“快速求购”"
        }, function () {})
      }), $(".allsort-list").on("click", ".item-list-sub2 a", function () {
        var e = $(this).closest(".item-list").attr("id").substring(10);
        sensors.track("adCategoryMenuClick", {
          advert_category: {
            jiancai: "建筑钢材",
            rejuan: "热卷",
            zhongban: "中厚板",
            lengdu: "冷轧涂镀",
            xinggang: "型钢",
            guancai: "管材",
            ytg: "优特钢"
          } [e],
          advert_url: $(this).attr("href"),
          advert_order: $(this).parent().index() + 1
        }, function () {})
      }), $(document).on("click", ".btn-ksqg", function () {
        c("user_token") ? window.location.href = "//caigou.banksteel.com" : window.location.href = "//login.banksteel.com/login.htm?mybackurl=" + window.location.href
      }), {
        wngIsOpen: !1,
        rnhIsOpen: !1,
        bncIsOpen: !1
      });

    function r(e) {
      o = {
        wngIsOpen: !1,
        wngIsAuditing: !1,
        rnhIsAuditing: !1,
        rnhIsOpen: !1,
        bncIsOpen: !1
      }, c("user_token") ? ($.ajax({
        type: "get",
        url: "//supplychain.banksteel.com/purchase/vipbsr/api/assistant/member_authen?memberId=" + e,
        xhrFields: {
          withCredentials: !0
        },
        success: function (e) {
          console.log(e), e.success ? (e.data.rnhIsOpen || e.data.wngIsOpen || e.data.gylIsOpen || e.data.wngIsAuditing || e.data.gylIsAuditing || e.data.rnhIsAuditing ? e.data.wngIsOpen || e.data.gylIsOpen ? $("#topbar_rnh").attr("href", "https://supplychain.banksteel.com/console/index.html#/vipps/overview") : e.data.wngIsAuditing || e.data.gylIsAuditing ? $("#topbar_rnh").attr("href", "https://supplychain.banksteel.com/console/index.html#/vipps/contract/contract_progress") : e.data.rnhIsOpen ? $("#topbar_rnh").attr("href", "https://supplychain.banksteel.com/console/index.html#/viprnh/overview") : e.data.rnhIsAuditing && $("#topbar_rnh").attr("href", "https://supplychain.banksteel.com/console/index.html#/viprnh/contract/contract_progress") : $("#topbar_rnh").attr("href", "https://supplychain.banksteel.com/index.html"), e.data.bncIsOpen ? $("#topbar_bnc").attr("href", "https://supplychain.banksteel.com/console/index.html#/vipbsr/overview") : $("#topbar_bnc").attr("href", "https://supplychain.banksteel.com/bnc.html"), o.wngIsOpen = e.data.wngIsOpen || e.data.gylIsOpen, o.wngIsAuditing = e.data.wngIsAuditing || e.data.gylIsAuditing, o.rnhIsAuditing = e.data.rnhIsAuditing, o.rnhIsOpen = e.data.rnhIsOpen, o.bncIsOpen = e.data.bncIsOpen) : ($("#topbar_rnh").attr("href", "https://supplychain.banksteel.com/index.html"), $("#topbar_bnc").attr("href", "https://supplychain.banksteel.com/bnc.html")), o.bncIsOpen ? $("#topbar_supply").attr("href", "https://supplychain.banksteel.com/console/index.html#/vipbsr/overview") : o.wngIsOpen ? $("#topbar_supply").attr("href", "https://supplychain.banksteel.com/console/index.html#/vipps/overview") : o.wngIsAuditing ? $("#topbar_supply").attr("href", "https://supplychain.banksteel.com/console/index.html#/vipps/contract/contract_progress") : o.rnhIsOpen ? $("#topbar_supply").attr("href", "https://supplychain.banksteel.com/console/index.html#/viprnh/overview") : o.rnhIsAuditing ? $("#topbar_supply").attr("href", "https://supplychain.banksteel.com/console/index.html#/viprnh/contract/contract_progress") : $("#topbar_supply").attr("href", "https://supplychain.banksteel.com/index.html")
        }
      }), $("#topbar_ddr").attr("href", "https://supplychain.banksteel.com/ddr.html")) : ($("#topbar_bnc").attr("href", "https://supplychain.banksteel.com/bnc.html"), $("#topbar_rnh").attr("href", "https://supplychain.banksteel.com/index.html"), $("#topbar_ddr").attr("href", "https://supplychain.banksteel.com/ddr.html"), $("#topbar_supply").attr("href", "https://supplychain.banksteel.com/index.html"))
    }

    function i(e, t, a) {
      a = a || 0;
      a ? $.cookie(e, t, {
        expires: a,
        domain: "banksteel.com",
        path: "/"
      }) : $.cookie(e, t, {
        domain: "banksteel.com",
        path: "/"
      })
    }

    function c(e) {
      return $.cookie(e) || ""
    }

    function l() {
      $.ajax({
        type: "get",
        url: "//api.banksteel.com/consult/v1/home/get-recommended-category",
        cache: !1,
        xhrFields: {
          withCredentials: !0
        },
        success: function (e) {
          var t;
          e && (t = "", e.data.forEach(function (e) {
            t += '<a style="color:#999" href="//res.banksteel.com?cn=' + encodeURI(e) + '&seartop=1">' + e + "&nbsp;&nbsp;</a>"
          }), $(".header .search-top5").html(t))
        }
      })
    }

    function h(a, s) {
      t && $.ajax({
        type: "get",
        url: "//member.banksteel.com/resource/api/v1/user/get-search-record",
        xhrFields: {
          withCredentials: !0
        },
        data: {
          type: a
        },
        success: function (e) {
          var t;
          e.success && (t = "", e.data.forEach(function (e) {
            t += '<li class="history"><a href="//' + (1 == a ? "shop" : "res") + ".banksteel.com?kw=" + encodeURI(e) + '"><span class="sear-res-l">' + e + "</span></a></li>"
          }), ("both" == s ? ($(".top-search-fixed .sear-res").html(t), $(".header .sear-res")) : "float" == s ? $(".top-search-fixed .sear-res") : $(".header .sear-res")).html(t))
        }
      })
    }

    function m(e, a, s) {
      $.ajax({
        type: "get",
        url: "//api.banksteel.com/consult/v1/home/get-keyword-options",
        xhrFields: {
          withCredentials: !0
        },
        data: {
          keyword: e,
          type: a
        },
        success: function (e) {
          var t;
          e.success && (t = "", e.data.forEach(function (e) {
            t += '<li class="keyOption"><a href="//' + (1 == a ? "shop" : "res") + ".banksteel.com?from=searchbar&kw=" + encodeURI(e) + '"><span class="sear-res-l">' + e + "</span></a></li>"
          }), (s ? $(".top-search-fixed .sear-res") : $(".header .sear-res")).html(t))
        }
      })
    }
    t ? $.ajax({
      type: "POST",
      url: "//login.banksteel.com/sso/verifyToken.htm",
      data: {
        token: t
      },
      success: function (e) {
        var t, a, s;
        e && (12 != e.code && e.content && e.content.loginUName ? ($(".logon").show(), $(".unlogin").hide(), t = e.content.loginUName, a = e.content.loginName, s = e.content.isSystemPortrait ? e.content.portraitUrl50 : "//a1.gystatic.com/user/" + e.content.portraitUrl50, $(".user-name").text(t), $(".user-tel").text(a), $(".content1-infor1").html('<img src="' + s + '">'), $(".side-login-icon").html('<img src="' + s + '">'), $(".page-index #telephone1").val(a), $.cookie("loginUID", e.content.loginUID, {
          domain: "banksteel.com",
          path: "/"
        }), i("login_name", encodeURI(e.content.loginUName), 1), i("login_tel", e.content.loginName, 1), i("login_memberid", e.content.memberId, 1), $(".messageCount") && ($("#showMessage").show(), getMessageCount(), messageTimer = setInterval(getMessageCount, 6e4)), r(e.content.memberId)) : i("supplyChainModalHasShow", 0))
      }
    }) : r(), t && $.ajax({
      type: "get",
      url: "//member.banksteel.com/resource/api/v1/user/get-consult-status",
      xhrFields: {
        withCredentials: !0
      },
      success: function (e) {
        e && (i("userStatus", e.data.status, 1), 0 == e.data.status || 1 == e.data.status || 2 == e.data.status ? $(".m-nav .myshop").hide() : ($(".m-nav .myshop").show(), $(".m-nav .myshop").attr("data-href", "//shop.banksteel.com/" + e.data.consultShopId)))
      }
    }), $(".m-nav .myshop").click(function () {
      window.location.href = $(this).attr("data-href")
    }), t && ($.ajax({
      type: "get",
      url: "//member.banksteel.com/member/header",
      xhrFields: {
        withCredentials: !0
      },
      success: function (e) {
        if (e && (i("user_member_info", e, 1), e.memberInfos && 0 != e.memberInfos.length || $(".logon-menber-info").hide().next().hide(), $(".logon-menber-info .menu-hd a").html(e.memberName), e.memberInfos)) {
          e.userName;
          for (var t = [], a = [], s = (e.memberInfos.forEach(function (e) {
              memberIdInfos[e.memberId] = e.memberName, t.push(e.memberId + ""), a.push(e.memberName)
            }), ""), n = 0; n < e.memberInfos.length; n++) s += 0 < n ? '<a target="_top" data-id="' + e.memberInfos[n].memberId + '" >' + e.memberInfos[n].memberName + "</a>" : '<a class="first" target="_top" data-id="' + e.memberInfos[n].memberId + '" >' + e.memberInfos[n].memberName + "</a>";
          $(".logon-menber-info .menu-bd-panel").html(s), tooltip = $(".tooltip").tooltipster({
            theme: "tooltipster-shadow",
            trigger: "custom"
          })
        }
      },
      error: function () {
        $(".logon-menber-info").hide().next().hide()
      }
    }), $.ajax({
      type: "get",
      url: "//member.banksteel.com/member/common/user/status",
      xhrFields: {
        withCredentials: !0
      },
      success: function (e) {
        e && (e.haveMember ? $(".user-status").hide() : $(".user-status").show(), 10 == e.authType || 20 == e.authType ? ($(".member-status-no").hide(), $(".member-status-is").show()) : ($(".member-status-no").show(), $(".member-status-is").hide()))
      },
      error: function () {
        $(".user-status").hide(), $(".member-status-no").hide(), $(".member-status-is").hide()
      }
    })), $(document).on("click", ".member-status-no", function () {
      window.location.href = "//member.banksteel.com/console/#/member/member-home"
    }), $(document).on("click", ".user-status", function () {
      window.location.href = "//member.banksteel.com/console/#/member/member-home"
    }), $(".logon-menber-info").on("click", ".menu-bd a", function () {
      var t = $(this).attr("data-id");
      $.ajax({
        type: "post",
        url: "//member.banksteel.com/member/header/switch-member",
        xhrFields: {
          withCredentials: !0
        },
        data: {
          currentMemberId: t
        },
        success: function (e) {
          i("login_memberid", t, 1), window.location.reload()
        },
        error: function (e) {
          console.log("err:" + result)
        }
      })
    }), 0 < $(".header .search-top5").length && (l(), setInterval(function () {
      l()
    }, 18e4)), h(0, "both"), $(".topbar .user-login").attr("href", "//login.banksteel.com/login.htm?mybackurl=" + window.location.href), $(".tb-m-a2.blue").click(function (e) {
      e.preventDefault(), sensors.logout(), i("supplyChainModalHasShow", 0), messageTimer && clearInterval(messageTimer), window.location.href = "https://member.banksteel.com/logout.htm?mybackurl=https://www.banksteel.com"
    })
  }), {}),
  param_br = params.sp,
  param_br = params.ml,
  param_br = params.br,
  param_br = params.pi;

function searchByParam(e, t, a, s, n) {
  $(document.body);
  var o, r = $("<form method='post'></form>");
  url = "//chaoshi.banksteel.com/", null != a && (o = $("<input type='hidden'>"), "51" == s ? url = "//chaoshi.banksteel.com/jiancai.htm" : "52" == s ? url = "//chaoshi.banksteel.com/rejuan.htm" : "53" == s ? url = "//chaoshi.banksteel.com/zhonghouban.htm" : "54" == s ? url = "//chaoshi.banksteel.com/lengzha.htm" : "55" == s ? url = "//chaoshi.banksteel.com/xinggang.htm" : "56" == s ? url = "//chaoshi.banksteel.com/guancai.htm" : "57" == s ? url = "//chaoshi.banksteel.com/youte.htm" : "58" == s && (url = "//chaoshi.banksteel.com/daigang.htm"), params[a] = s, o.attr({
    name: a
  }), o.val(params[a]), r.append(o)), r.attr({
    action: url
  }), null != e && (params[e] = t, (s = $("<input type='hidden'>")).attr({
    name: e
  }), s.val(params[e]), r.append(s)), n && ((a = $("<input type='hidden'>")).attr({
    name: "txt"
  }), a.val($(n).text()), r.append(a)), r.appendTo(document.body), r.submit(), document.body.removeChild(r[0])
}
var flag = "";

function checkKwInput(e) {
  var t = "float" == e ? $("#kwInput1-f") : $("#kwInput1"),
    a = "float" == e ? $("#kwInput2-f") : $("#kwInput2"),
    s = $.trim(t.val()),
    s = ("请输入关键词查询" == s || "" == s ? a.val("") : a.val(t.val()), a.val(a.val()), "商品");
  if ("1" == flag || "" == flag)
    if ("float" == e) "店铺" == $("#search-type .on").text() ? ($("#search-float").attr("action", "//shop.banksteel.com"), s = "店铺") : $("#search-float").attr("action", "//res.banksteel.com");
    else if ("店铺" == $(".active-tit").text()) $("#search").attr("action", "//shop.banksteel.com"), s = "店铺";
  else {
    if (0 < $(".page-chaoshi").length) return sensors.track("topSearchClick", {
      prior_source: document.referrer,
      current_page: window.location.href,
      key_word: t.val(),
      key_word_type: "超市用户输入",
      search_type: s
    }, function () {}), !1;
    $("#search").attr("action", "//res.banksteel.com")
  }
  return sensors.track("topSearchClick", {
    prior_source: document.referrer,
    current_page: window.location.href,
    key_word: t.val(),
    key_word_type: "用户输入",
    search_type: s
  }, function () {}), !0
}({
  addCookie: function () {
    document.cookie = "PAGECODE=" + escape(this.uuid()) + ";expires=" + new Date("2050-1-1") + ";domain=banksteel.com"
  },
  exists: function () {
    var e = new RegExp("(^| )PAGECODE=([^;]*)(;|$)");
    return !!document.cookie.match(e)
  },
  uuid: function () {
    for (var e = [], t = "0123456789abcdef", a = 0; a < 36; a++) e[a] = t.substr(Math.floor(16 * Math.random()), 1);
    return e[14] = "4", e[19] = t.substr(3 & e[19] | 8, 1), e[8] = e[13] = e[18] = e[23] = "-", e.join("")
  },
  generate: function () {
    try {
      this.exists() || this.addCookie()
    } catch (e) {
      console && console.error && console.error(e)
    }
  }
}).generate();
var ids = [];

function getMessageCount() {
  getCookie("user_token") && $.ajax({
    type: "GET",
    url: "//api.banksteel.com/website/banksteel-notify/api/v1/web/notify/unread/num",
    contentType: "application/json;charset=utf-8",
    data: "businessType=3",
    dataType: "json",
    xhrFields: {
      withCredentials: !0
    },
    success: function (e) {
      var t = e.accountNum + e.businessNum;
      $(".msg-cont .trade-msg").html(e.businessNum), $(".msg-cont .account-num").html(e.accountNum), $(".messageCountDiv").css("display", ""), 99 <= t ? $(".messageCount").html("99+") : $(".messageCount").html(t), !e.businessNum && e.accountNum ? ($(".msg-wrap").hide(), $(".account-msg").show(), $(".msg-top li").removeClass("active"), $(".msg-top li").eq(1).addClass("active"), getMessageList(1)) : ($(".msg-wrap").show(), $(".account-msg").hide(), $(".msg-top li").removeClass("active"), $(".msg-top li").eq(0).addClass("active"), getMessageList(2))
    },
    error: function (e) {
      messageTimer && clearInterval(messageTimer), console.log(e)
    }
  })
}

function getMessageList(s) {
  $.ajax({
    type: "get",
    url: "//api.banksteel.com/website/banksteel-notify/api/v1/web/notify/heard/list",
    contentType: "application/json;charset=utf-8",
    dataType: "json",
    data: "businessType=3&messageType=" + s,
    xhrFields: {
      withCredentials: !0
    },
    success: function (e) {
      var t = "";
      if (ids = [], 0 < e.length ? $(".msg-bottom").show() : $(".msg-bottom").hide(), 0 < e.length)
        for (var a = 0; a < e.length; a++) ids.push(e[a].id), t += '<li  class="msg-item-li" data-id="' + e[a].id + '" data-jumpLink="' + e[a].jumpLink + '" data-memberId="' + e[a].memberId + '"><dt><span>' + e[a].title + " </span>" + e[a].showTime + "</dt><dd title='" + e[a].content + "'>" + e[a].content + "</dd></li>";
      else t = '<li  class="none-msg">暂无消息</li>';
      1 == s ? $(".account-msg").html(t) : 2 == s && $(".msg-wrap").html(t)
    }
  })
}

function toRead(e, t, a) {
  $.ajax({
    type: "PATCH",
    url: "//api.banksteel.com/website/banksteel-notify/api/v1/web/notify/read/" + e,
    xhrFields: {
      withCredentials: !0
    },
    success: function (e) {
      getMessageCount(), window.open(t)
    },
    error: function (e) {}
  })
}

function getNavAdlist(a) {
  $.ajax({
    type: "get",
    url: "//www.banksteel.com/index/queryAd.jsp?siteName=gg_nav_" + a,
    success: function (e) {
      var t;
      e && (t = "", e.forEach(function (e) {
        t += '<li><a target="_blank" href="' + e.link + '"><img width="175" height="60" src="' + e.picUrl + '"></a></li>'
      }), $("#item-list-" + a).children(".item-list-sub2").html(t))
    }
  })
}
$(".msg-bottom a").click(function () {
  var e = ids.join(",");
  $.ajax({
    type: "PATCH",
    xhrFields: {
      withCredentials: !0
    },
    url: "//api.banksteel.com/website/banksteel-notify/api/v1/web/notify/read/" + e,
    success: function (e) {
      getMessageCount()
    }
  })
}), $(document).on("click", ".msg-item-li", function () {
  toRead($(this).attr("data-id"), $(this).attr("data-jumpLink"), $(this).attr("data-memberid"))
}), 0 < $(".nav-allsort").length && (getNavAdlist("jiancai"), getNavAdlist("rejuan"), getNavAdlist("zhongban"), getNavAdlist("lengdu"), getNavAdlist("xinggang"), getNavAdlist("guancai"), getNavAdlist("ytg"));
! function () {
  var doc = $(document),
    win = $(window),
    backTopBtn = $(".float-r .li4"),
    feedbackDialog, closeMessage = (backTopBtn.click(function () {
      $("body,html").animate({
        scrollTop: 0
      }, 500)
    }), win.scroll(function () {
      300 <= doc.scrollTop() ? $(".float-r .li4").slideDown(300) : $(".float-r .li4").slideUp(100)
    }), $(document).on("click", "#user_request", function () {
      feedbackDialog = dialog({
        title: !1,
        id: "feedback_dialog",
        skin: "feedback-dialog-skin",
        url: "//www.banksteel.com/about/feedback/feedback.html",
        width: "515",
        height: "520",
        fixed: !0
      }), Autofixed("#feedback_dialog", feedbackDialog), feedbackDialog.showModal()
    }), function closeMessage(e) {
      var tex, data, type, data;
      "https://www.banksteel.com" == e.origin && (feedbackDialog && feedbackDialog.close().remove(), tex = "", data = e.data, data && ("closeFeedback" == data ? tex = "" : (data = eval("(" + data + ")"), data.type && "feedback1" == data.type && (type = data.res, 1 == type ? (tex = "", feedbackSucess = dialog({
        title: " ",
        skin: "feedback-dialog-skin",
        content: '<div class="feedback-success-tip"><div class="tip-img"></div><div class="desc">您的宝贵意见我们已经收到，谢谢！</div></div>',
        width: "380",
        height: "275",
        fixed: !0
      }).showModal(), setTimeout(function () {
        feedbackSucess.close().remove()
      }, 5e3)) : tex = 2 == type ? "数据库插入失败！" : "系统异常！"))), tex) && dialog({
        title: "提示",
        content: '<div class="feedback-success-tip"><div class="desc">' + tex + "</div></div>",
        width: "380",
        height: "80",
        fixed: !0,
        okValue: "确定",
        ok: function () {}
      }).showModal()
    });
  window.addEventListener ? window.addEventListener("message", closeMessage, !1) : window.attachEvent && window.attachEvent("onmessage", closeMessage)
}();
